2013-07-18 9 views
20

के बजाय घोषणा आदेश द्वारा निर्धारित रंगीन संपत्ति को परिभाषित करने वाली कई कक्षाओं की प्राथमिकता रंग संपत्ति को परिभाषित करने वाली समान विशिष्टता के दो वर्गों को देखते हुए मैंने सोचा कि तत्व वर्ग विशेषता में सूचीबद्ध अंतिम श्रेणी को प्राथमिकता दी जाएगी।विनिर्देश आदेश

http://htmlhelp.com/reference/css/structure.html से:

विशिष्टता के आदेश में यह आसान बनाने के लिए, दो नियम एक ही वजन, पिछले शासन निर्दिष्ट जीत है जब।

निम्नलिखित वैक्यूम कोड उदाहरण में जिस क्रम में वर्ग नियम सेट परिभाषित किया गया है वह प्राथमिकता निर्धारित करता है। यहां अंतिम, या सबसे हालिया, कक्षा नियम सेट परिभाषा प्राथमिकता लेती है।

<style> 
    .makeBlue {color: blue;} 
    .makeGreen {color:green;} 
</style> 
<div> 
    <p class="makeGreen makeBlue">makeGreen makeBlue</p> 
    <p class="makeBlue makeGreen">makeBlue makeGreen</p> 
</div> 

उत्पादन पाठ हरा है।

अगर मैं वर्ग घोषणा के आदेश स्वैप, और घोषित .makeGreen पहले

<style> 
    .makeGreen {color:green;} 
    .makeBlue {color: blue;}   
</style> 
<div> 
    <p class="makeGreen makeBlue">makeGreen makeBlue</p> 
    <p class="makeBlue makeGreen">makeBlue makeGreen</p> 
</div> 

उत्पादन पाठ नीला है।

मैंने इसे पहले कभी नहीं देखा है। संपादित करें मैंने सोचा संपादित करें तत्व वर्ग विशेषता में सूचीबद्ध अंतिम श्रेणी प्राथमिकता लेती है।

संपादित स्पष्ट करने के लिए -> मैं कभी कभी एक पालतू जानवर के रूप में एक तत्व के बारे में सोच, के एक कुत्ते को मान लें। मैं कुत्ते को एक आदेश जारी करने के रूप में तत्व के वर्ग विशेषता में एक वर्ग जोड़ना देखता हूं। अगर मैं इसे बैठने के लिए कहता हूं, और बाद में इसे झूठ बोलता हूं, तो मैं कुत्ते को झूठ बोलने की उम्मीद करता हूं। मुझे उम्मीद नहीं है कि कुत्ते को बस बैठे रहें क्योंकि मैंने सिखाया कि कैसे बैठना है (हाल ही में) मैंने इसे सिखाया कि कैसे झूठ बोलना है।

तो ... दो प्रश्न।

  1. क्या यह ऐसा माना जाता है? उत्तर
  2. यदि ऐसा है तो क्यों? मैं दूसरे से पहले घोषित किया गया था यह निर्धारित करने के लिए कक्षा घोषणाओं के माध्यम से खोदने का लाभ देखने में असमर्थ हूं।

बहुत धन्यवाद!

+0

धन्यवाद, यह पोस्ट पहले प्रश्न का उत्तर देता है, जैसा कि j08691 और mathguy54 के उत्तरों के रूप में है। मैं अभी भी अनिश्चित हूं कि ऐसा क्यों है (प्रश्न # 2)। अगर मुझे कहीं आम संदर्भ याद आ रहा है तो कृपया मुझे बताएं। मैं अंतर्निहित कारण को बेहतर ढंग से समझना चाहता हूं कि स्टाइल घोषणा आदेश किसी तत्व के वर्ग विशेषता में उपस्थिति का क्रम क्यों चलाता है। * मूल प्रश्न संपादित * – IdusOrtus

+1

"मैं कुत्ते को एक आदेश जारी करने के रूप में तत्व के वर्ग विशेषता में एक वर्ग जोड़ना देखता हूं।" यह देखने के लिए यह एक अच्छा तरीका नहीं है। गुण * आदेश * से बहुत अलग हैं। विशेषताएं * हैं * किसी तत्व के लिए निहित कुछ, जबकि दूसरी तरफ कमांड वे चीजें हैं जो एक तत्व * करता है * अक्सर अनुक्रम में (या एक के बाद एक)। – BoltClock

+1

आपके दूसरे प्रश्न के उत्तर में यह केवल इसलिए है क्योंकि "विशिष्टता" एक सीएसएस अवधारणा है। दस्तावेज़ भाषा (इस मामले में, एचटीएमएल) पर इसका कोई असर नहीं है। – BoltClock

उत्तर

22

कक्षाओं का क्रम जैसा कि आप उन्हें तत्वों पर निर्दिष्ट करते हैं, अप्रासंगिक है। यह आदेश है कि आप उन्हें अपनी शैली की घोषणाओं में परिभाषित करते हैं जो महत्वपूर्ण हैं। आपके द्वारा पोस्ट किया गया उद्धरण शैली घोषणाओं में है, न कि तत्वों पर कक्षाओं को क्रमबद्ध किया गया है।

+1

पहले पोस्ट किए गए उत्तर के लिए स्वीकृत और मैंने उद्धृत उद्धरण को स्पष्ट किया। एक बार फिर धन्यवाद। – IdusOrtus

0

यह विकल्प सीमित करने लगता है। यदि मैं दो अलग-अलग अनुच्छेदों पर दो वर्गों का उपयोग करना चाहता हूं लेकिन प्राथमिकता अलग है, तो मुझे एक तीसरी कक्षा को परिभाषित करने की आवश्यकता होगी जो पहले परिभाषित वर्ग के समान है लेकिन थोड़ा अलग नाम है।

ई।जी

.xxxxx {margin-top: 1em; margin-left: 0; text-align: left; ... [some other attribute definitions]}<br/> 

.yyyyy {margin-top: 3em; margin-left: 1em; text-align: justify; ... [some different attribute definitions]} 

<p class="yyyyy xxxxx">...</p> 

हमेशा 1em के बाईं मार्जिन और औचित्य साबित की एक पाठ संरेखण प्लस xxxxx और YYYYY में अन्य विशेषताओं के साथ 3em के एक शीर्ष मार्जिन का प्रयोग करेंगे। हालांकि, ऐसी स्थिति हो सकती है जिसमें मैं xxxxx और yyyyy में अन्य सभी विशेषताओं को रखते हुए मार्जिन-टॉप, मार्जिन-बाएं, और टेक्स्ट-एलाइन सेटिंग्स को ओवरराइड करना चाहता हूं। यदि पूर्वता वर्ग विशेषता में आदेश से निर्धारित किया गया था तो मैं ऐसा करने से उस विकल्प होगा:

<p class="xxxxx yyyyy">...</p> 

चूंकि यह नहीं है, मैं, प्रश्न में दो नीचे एक और परिभाषा बनाने के लिए इतनी के रूप में है:

.zzzzz {margin-top: 1em; margin-left 0; text-align: left; ... [some other attribute definitions]} 

और

<p class="yyyyy zzzzz">...</p> 

का उपयोग यह जबकि वर्ग विशेषता क्रम पूर्वता समस्या के लिए एक गैर इष्टतम समाधान की तरह लगता है सीएसएस को mucking बिना अधिक लचीलापन देता है।

बीटीडब्ल्यू, नुक्क ग्लोलाइट क्लास एट्रिब्यूट में ऑर्डर द्वारा मुझे प्राथमिकता सेट करने की अनुमति देकर ऐसा करना चाहिए। और इस प्रकार मेरा सीएसएस थोड़ा और कॉम्पैक्ट है।

यदि मेरे दशकों के प्रोग्रामिंग में मैंने कुछ भी सीखा है, तो यह प्राथमिकता सबसे अच्छी तरह से संभव है जहां सभी काम किए जाते हैं। एक लिंक की गई स्थिर स्टाइलशीट में प्राथमिकता रखने से लचीलापन कम हो जाता है।

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