2012-01-24 19 views
91

क्या सीएसएस 2.1 :after और सीएसएस 3 ::after छद्म चयनकर्ताओं के बीच कोई कार्यात्मक अंतर है (::after के अलावा पुराने ब्राउज़र में समर्थित नहीं है)? क्या नए विनिर्देश का उपयोग करने का कोई व्यावहारिक कारण है?: बनाम बनाम ::

उत्तर

95

यह वर्ग बनाम छद्म तत्व भेद छद्म है।

::first-line, ::first-letter, ::before और ::after (जो थोड़ी देर के आसपास किया गया है और एकल कोलन के साथ इस्तेमाल किया जा सकता है अगर आप IE8 समर्थन की आवश्यकता) के अलावा, छद्म तत्वों डबल कोलन की आवश्यकता है।

छद्म कक्षाएं वास्तविक तत्व खुद को चुनते हैं तो आपको एक div में पहली या विशिष्ट <p> के चयन करने, उदाहरण के लिए के लिए :first-child या :nth-of-type(n) उपयोग कर सकते हैं।
(और भी :hover और :focus की तरह वास्तविक तत्वों का कहा गया है।)

छद्म तत्वों ::first-line या ::first-letter, चीजें हैं जो अपने आप में तत्वों की तरह नहीं कर रहे हैं एक तत्व की एक उप-भाग को लक्षित


वास्तव में, यहाँ बेहतर वर्णन: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
इसके अलावा यहाँ: ::after तरह http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-colon-notation/

+4

यह इस भेद के कारण है कि "छद्म चयनकर्ता" (प्रश्न से) एक गैरकानूनी शब्द है। इसे कभी भी प्रयोग न करें। – BoltClock

+1

जब तक आप दोनों के बारे में बात नहीं कर रहे हैं। या सामान्य शर्तों में। – albert

+1

यह सिद्धांत का एक बड़ा स्पष्टीकरण है, लेकिन क्या यह व्यावहारिक मुद्दे पर असर डालता है? सीएसएस 3 विनिर्देश का उपयोग करने के लिए वास्तव में कोई फायदा है कि सीएसएस 2 एक ही काम करेगा - अधिक ब्राउज़रों में? – DRosenfeld

0

सीएसएस चयनकर्ता डोम पेड़ में एक स्पष्ट तत्व के रूप में उपलब्ध नहीं कुछ आभासी तत्व हैं। वे "Pseudo-Elements" कहा जाता है और कुछ सामग्री से पहले एक तत्व (जैसे: ::before, ::after) के बाद डालने किया जाता है/(: ::first-letter जैसे) या, एक तत्व के कुछ हिस्से का चयन करें। वर्तमान में केवल 5 मानक छद्म तत्व हैं: after, before, first-letter, first-line, selection

दूसरी ओर, वहाँ "Pseudo-Classes" कहा जाता चयनकर्ताओं के अन्य प्रकार जो एक तत्व के एक विशेष राज्य परिभाषित करने के लिए इस्तेमाल किया जाता है (जैसे :hover, :focus, :nth-child(n) के रूप में)। ये डीओएम में एक मौजूदा तत्व का चयन करेंगे। छद्म वर्ग 30 से अधिक वस्तुओं के साथ एक लंबी सूची है।

प्रारंभ में (सीएसएस 2 और सीएसएस 1 में), सिंगल-कोलन सिंटैक्स का इस्तेमाल छद्म-वर्गों और छद्म तत्वों दोनों के लिए किया गया था। लेकिन, CSS3 में :: वाक्यविन्यास ने छद्म-तत्वों के लिए : नोटेशन को बेहतर ढंग से अलग करने के लिए प्रतिस्थापित किया।

पिछड़े संगतता के लिए, पुराने सिंगल-कोलन सिंटैक्स छद्म तत्वों के लिए स्वीकार्य है जैसे कि :after (ब्राउज़र अभी भी सभी एक अर्धविराम के साथ पुराने वाक्यविन्यास का समर्थन करते हैं)। केवल आईई -8 नए वाक्यविन्यास का समर्थन नहीं करता है (यदि आप आईई 8 का समर्थन करना चाहते हैं तो एकल-कोलन का उपयोग करें)।