CSS में क्या महत्वपूर्ण है?


409

!importantCSS में क्या मतलब है?

यह सीएसएस 2 में उपलब्ध है? सीएसएस 3?

यह कहां समर्थित है? सभी आधुनिक ब्राउज़र?



17
... जब भी संभव हो कुछ बचने के लिए।
स्कॉट

जवाबों:


400

इसका अर्थ है, अनिवार्य रूप से, यह क्या कहता है; यह 'महत्वपूर्ण है, बाद के नियमों और किसी भी सामान्य विशिष्टता के मुद्दों को अनदेखा करें, इसे लागू करें नियम को !'

सामान्य उपयोग में एक बाहरी स्टाइलशीट में परिभाषित नियम headको दस्तावेज़ में परिभाषित एक शैली द्वारा अधिलेखित किया जाता है , जो बदले में, तत्व के भीतर ही एक इन-लाइन शैली द्वारा अधिलेखित किया जाता है (चयनकर्ताओं की समान विशिष्टता मानकर)। !important'विशेषता' (?) के साथ एक नियम को परिभाषित करते हुए सामान्य चिंताओं को 'पहले' वाले को ओवरराइड करने वाले 'बाद के' नियम के संबंध में बताता है।

इसके अलावा, आमतौर पर, एक अधिक विशिष्ट नियम एक कम-विशिष्ट नियम को ओवरराइड करेगा। इसलिए:

a {
    /* css */
}

द्वारा सामान्य रूप से अधिभूत किया जाता है:

body div #elementID ul li a {
    /* css */
}

चूंकि बाद वाला चयनकर्ता अधिक विशिष्ट होता है (और यह सामान्य तौर पर मायने नहीं रखता है, जहां अधिक विशिष्ट चयनकर्ता पाया जाता है ( headया बाहरी स्टाइलशीट में) यह अभी भी कम-विशिष्ट चयनकर्ता (इन-लाइन शैली विशेषताएँ हमेशा ओवरराइड करेगा) 'अधिक-', या 'कम-', विशिष्ट चयनकर्ता को ओवरराइड करें क्योंकि यह हमेशा अधिक विशिष्ट होता है।

यदि, हालांकि, आप !importantकम विशिष्ट चयनकर्ता के सीएसएस घोषणा में जोड़ते हैं , तो यह प्राथमिकता होगी।

उपयोग करने !importantके अपने उद्देश्य हैं (हालांकि मैं उनके बारे में सोचने के लिए संघर्ष करता हूं), लेकिन यह बहुत हद तक एक परमाणु विस्फोट का उपयोग कर रहा है ताकि आपके मुर्गियों को मारने वाले लोमड़ियों को रोका जा सके; हाँ, लोमड़ियों को मार दिया जाएगा, लेकिन मुर्गियां होंगी। और पड़ोस।

यह आपके सीएसएस को एक बुरा सपना (व्यक्तिगत, अनुभवजन्य, अनुभव से) डिबगिंग भी बनाता है।


253
यह कई डेवलपर्स के लिए भी भ्रमित कर रहा है क्योंकि कई प्रोग्रामिंग भाषाओं में उपसर्ग! का मतलब नहीं है
रस्टीक्स

19
के लिए एक उद्देश्य महत्वपूर्ण है एक GreaseMonkey स्क्रिप्ट जिसमें आप जानबूझकर अन्य लोगों के CSS को ओवरराइड कर रहे हैं जो संभवतः आपके लिए अधिक विशिष्ट है।
नौमेनन

1
आधिकारिक तौर पर W3 इसे "नियम" कहता है
जेडी स्मिथ

5
कम से कम यह व्यंग्यात्मक नहीं है और कहता है important!(महत्वपूर्ण नहीं)
user3553260

2
आपने लिखा है: 'सामान्य उपयोग में एक बाहरी स्टाइलशीट में परिभाषित नियम को दस्तावेज़ के प्रमुख में परिभाषित शैली द्वारा अधिलेखित किया जाता है'। यह गलत है।
13

130

महत्वपूर्ण नियम आपके सीएसएस कैस्केड बनाने का एक तरीका है, लेकिन यह भी नियम है कि आपको लगता है कि सबसे महत्वपूर्ण हमेशा लागू होते हैं। एक नियम जिसमें महत्वपूर्ण संपत्ति होती है, हमेशा कोई भी बात लागू नहीं की जाएगी जहां वह नियम सीएसएस दस्तावेज़ में दिखाई देता है।

इसलिए, यदि आपके पास निम्नलिखित हैं:

.class {
   color:red !important;
}
.outerClass .class {
   color:blue;
}

महत्वपूर्ण के साथ नियम लागू किया जाएगा (गिनती की विशिष्टता नहीं )

मेरा मानना ​​है कि !importantCSS1 में दिखाई दिया, इसलिए हर ब्राउज़र इसका समर्थन करता है (IE4 आंशिक कार्यान्वयन के साथ IE6, IE7 + पूर्ण)

इसके अलावा, यह कुछ ऐसा है जिसे आप अक्सर उपयोग नहीं करना चाहते हैं, क्योंकि यदि आप अन्य लोगों के साथ काम कर रहे हैं तो आप अन्य संपत्तियों को ओवरराइड कर सकते हैं।


1
IE4 +, वास्तव में, कीड़े, अप करने के लिए और सहित 6. साथ
BoltClock

15
भ्रम होता है जैसा !कि कुछ भाषाओं में नहीं है लेकिन अब यह स्पष्ट है।
218

2
मुझे विशेष रूप से खुशी है कि आपने उपयोग करने के लिए वाक्य रचना को शामिल किया !important। सीएसएस अन्य भाषाओं से काफी अलग है कि यह भूलना आसान है कि कुछ चीजों का उपयोग कैसे करें।
1

3
@ Si8 - हां, उस भ्रम के कारण, मैंने हमेशा सोचा है कि "उन्हें" इसे परिभाषित करना चाहिए important!, या शायद IMPORTANT!, इसके बजाय !important। मुझे आश्चर्य है कि अगर कोई (जो इसे पढ़ सकता है) जानता है कि उन्होंने इसे विराम चिह्न के साथ क्यों परिभाषित किया? जाहिर है, अब इसे बदलने के लिए बहुत देर हो चुकी है।
केविन फेगन

22

!important CSS1 का एक हिस्सा है।

इसका समर्थन करने वाले ब्राउज़र: IE5.5 +, फ़ायरफ़ॉक्स 1+, सफारी 3+, क्रोम 1+।

इसका मतलब है, कुछ इस तरह:

अगर कुछ और महत्वपूर्ण नहीं है, तो मेरा उपयोग करें!

खिचड़ी भाषा इसे बेहतर कहती है।


5
!importantकेवल सफारी 3+ तक सीमित नहीं है; इसने शुरुआत से ही इसका समर्थन किया है जैसे कि अन्य सभी गैर-IE ब्राउज़र। आईई यह संस्करण 4 से आगे समझता है, लेकिन यह केवल संस्करण 7 से यह बग-मुक्त प्रारंभिक समर्थन करता है
BoltClock

12

इसका उपयोग सीएसएस कैस्केड में छंटाई को प्रभावित करने के लिए किया जाता है जब मूल द्वारा छंटाई की जाती है। इसका अन्य उत्तरों में यहाँ बताई गई विशिष्टता के साथ कोई लेना-देना नहीं है।

यहां सबसे कम से लेकर उच्चतम तक प्राथमिकता है:

  1. ब्राउज़र शैलियों
  2. उपयोगकर्ता शैली पत्रक घोषणाएँ (बिना महत्वपूर्ण)
  3. लेखक शैली पत्रक घोषणाएँ (बिना महत्वपूर्ण)
  4. एक महत्वपूर्ण लेखक शैली की चादरें
  5. महत्वपूर्ण उपयोगकर्ता शैली पत्रक

उसके बाद पाई में उंगली रखने वाले नियमों के लिए विशिष्टता होती है।

संदर्भ:


जैसा कि @ फैबियन-बार्नी ने बताया !importantहै कि कैस्केडिंग ऑर्डर के लिए एक संशोधक है। डेवलपर pmozilla.org/en-US/docs/Web/CSS/Cascade (संदर्भ के लिए तालिका देखें)।
डूमजंकी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.