2011-11-14 16 views
26

अगर मैं एक शैली वर्ग इस तरह के रूप में परिभाषित किया है:सीएसएस कई वर्गों संपत्ति ओवरराइड

.myclass{ 
    //bunch of other stuff 
    float:left; 
} 

और मैं इस तरह एक और वर्ग को परिभाषित:

.myclass-right{ 
    float:right; 
} 

और मैं एक div इस तरह से परिभाषित करते हैं:

<div class="myclass myclass-right"></div> 

क्या वह div myclass से सब कुछ प्राप्त करेगा, लेकिन फ्लोट संपत्ति को फ़्लोट करने के लिए ओवरराइड करेगा: है ना? यही वह है जो मैं होने की उम्मीद करता हूं। यह भी जानना चाहते हैं कि इसमें कोई क्रॉस-ब्राउज़र प्रभाव है (अच्छे ब्राउज़र बनाम आईई 7 या इससे अधिक, एफ *** आईई 6)।

+1

हां जिस तरह से यह काम करेगा, और [यहां] (http://jsfiddle.net/Pointy/Fr8Te/) प्रदर्शित करने के लिए एक jsfiddle है। – Pointy

+0

http://stackoverflow.com/questions/3066356/multiple-css-classes-properties-overlapping-based-on-the-order-defined – deviousdodo

+0

ओप्स का डुप्लिकेट। यह एक डुप्ली है। मुझे लगता है कि मैं काफी मुश्किल नहीं लग रहा था। इसे बंद करने से पहले मुझे 5 मिनट दें ताकि मैं एक भाग्यशाली प्रतियोगी को उनके सहायक उत्तर के लिए एक और 15 प्रतिनिधि दे सकूं। – iandisme

उत्तर

28

ओवरराइड करना चाहिए रहे हैं और .myclass-right शैली खंड है .myclass के बाद परिभाषित, हां।

विस्तार करने के लिए संपादित करें: एचटीएमएल तत्व में कक्षाएं दिखाई देने का आदेश कोई प्रभाव नहीं पड़ता है, केवल एक चीज जो चयनकर्ता की विशिष्टता है और जिस क्रम में चयनकर्ता स्टाइल शीट में दिखाई देते हैं।

+2

आपके 'विस्तार में संपादित करें' के साथ अच्छी स्पष्टीकरण। स्टाइलशीट पदार्थ में आदेश थोड़ा कपटपूर्ण है ... – Droj

14

!important का उपयोग करना ऐसा करने का एक तरीका है।

.myclass-right{ 
    float:right !important; 
} 

इसके अलावा अगर आप अपने चयनकर्ता के साथ अधिक विशिष्ट यह जब तक चयनकर्ताओं एक ही विशिष्टता (इस मामले वे करते में) के रूप में अच्छी तरह से

div.myclass-right{ 
    float:right; 
} 
7

आपकी सीएसएस फ़ाइल में आपकी अन्य कक्षा के बाद घोषित किया जाएगा, यह काम करेगा।

12

बस के अलावा एक और विकल्प बाहर फेंक करना चाहता था महत्वपूर्ण है और साथ ही शैली परिभाषा क्रम: आप दोनों एक साथ के साथ-साथ श्रृंखला कर सकते हैं:

.myclass.myclass-right{float:right;} 
.myclass{float:left;} 
1

मामले में जहां सीएसएस गुण संघर्ष में, सीएसएस टैग के बाद स्टाइल शीट में दूसरा प्राथमिकता लेगा।

दूसरे शब्दों में - यदि आप चाहते हैं कि कुछ वर्ग कभी दूसरों को ओवरराइड करें - बस इसे अपनी सीएसएस फ़ाइल के अंत में रखें।

संबंधित मुद्दे