2013-03-25 9 views
96

हाल ही में मैं CSS में आया था।* * सीएसएस चयनकर्ता क्या करता है?

साइट संदर्भ - Site Link

सीएसएस स्टाइल शीट, इंटरनेट और स्टैक ओवरफ़्लो में एक * उपयोग के लिए उदाहरणों के साथ बाढ़ आ गई है, लेकिन मुझे सीएसएस में दो * * प्रतीक का उपयोग करने के बारे में निश्चित नहीं है।

मैंने इसे गुगल किया, लेकिन इसके बारे में कोई प्रासंगिक जानकारी नहीं ढूंढ पाई, क्योंकि एक * सभी तत्वों का चयन करता है, लेकिन मुझे यकीन नहीं है कि साइट ने इसे दो बार क्यों उपयोग किया। इसके लिए गायब हिस्सा क्या है, और यह हैक क्यों उपयोग किया जाता है (यदि यह एक हैक है)?

उत्तर

135

किसी भी अन्य समय की तरह आप दो चयनकर्ताओं को एक के बाद एक (उदाहरण के लिए li a) डालते हैं, तो आप वंश संयोजक प्राप्त करते हैं। तो * * कोई तत्व है जो कि किसी भी अन्य तत्व के वंशज है - दूसरे शब्दों में, कोई भी तत्व पूरे दस्तावेज़ का मूल तत्व नहीं है।

+0

उत्तर के लिए thx..इस चीज के लिए मैं सोच रहा था लेकिन यकीन नहीं है कि समुदाय से पूछने के लिए सोचा था ... जल्द ही इसे स्वीकार करेंगे +1 – swapnesh

+1

सिर्फ एक और बात पूछने के लिए - क्या यह वास्तव में * * का उपयोग करने के लिए प्रासंगिक है? जैसा कि मैं अवधारणा को समझता हूं लेकिन इसे व्यावहारिक शर्तों में नहीं ले रहा हूं :( – swapnesh

+2

@swapnesh यह एक ब्राउज़र हैक जैसा दिखता है। एक '* {फ़ॉन्ट आकार: XXX} 'नियम और एक * * * {फ़ॉन्ट आकार: YYY} है 'नियम। उनमें से एक अधिकांश ब्राउज़रों पर लागू होता है, और दूसरा एक निश्चित बग वाले ब्राउज़र पर लागू होता है, हालांकि मुझे विवरण जानने के लिए धैर्य नहीं है। यह '* html' हैक जैसा है जो उसमें उपयोग किया जाता था पुराने आईई का पता लगाने के लिए सामान्य उपयोग – hobbs

32

* * शीर्ष-स्तर तत्व को छोड़कर सबकुछ मिलाता है, उदाहरण के लिए, html

+0

धन्यवाद जो, यह [यहां] (http का परीक्षण किया।नेट/एनएनसीवीवाई /) और उपर्युक्त टिप्पणियों के अनुसार: '* *' चयनकर्ता पुराने ब्राउज़र के अलावा सभी ब्राउज़रों के लिए 'html *' के बराबर है :-) – Stano

+0

@Stano '* *' 'html *' के बराबर है ... एक HTML फ़ाइल के लिए। लेकिन सीएसएस का इस्तेमाल अन्य प्रकार के दस्तावेजों (एसवीजी विशेष रूप से) शैली के लिए किया जा सकता है। –

7

यह किसी अन्य तत्व के अंदर घोंसला वाले सभी तत्वों का चयन करता है, उसी तरह div a<div> तत्व के अंदर कहीं भी घोंसला वाले सभी <a> तत्वों का चयन करेगा।

10

* का मतलब सभी तत्वों को दी गई शैलियों को लागू करना है।

* * का मतलब सभी तत्वों के बाल तत्वों को दी गई शैलियों को लागू करना है। उदाहरण:

body > * { 
    margin: 0; 
} 

यह शरीर के सभी बच्चे तत्वों के लिए मार्जिन शैलियों लागू होता है। उसी तरह,

* * { 
    margin: 0; 
} 

* के बच्चे तत्वों पर लागू होता है margin: 0। संक्षेप में, यह लगभग हर तत्व के लिए margin: 0 लागू होता है।

आम तौर पर, एक * पर्याप्त है। दो * * की कोई आवश्यकता नहीं है।

+2

thx .. यहां तक ​​कि मुझे अभी भी अंतिम पंक्ति में जो भी बताया गया है, उसके लिए मुझे यकीन नहीं है "आम तौर पर, * पर्याप्त है। * * मुझे लगता है।" – swapnesh

+3

'* *' बाल तत्वों के नहीं, * वंश * तत्वों के शैलियों को लागू करता है। बाल तत्व आपके उदाहरण में '>' जैसा होंगे, स्थान नहीं। वंशज और बच्चे एक ही बात नहीं हैं। – BoltClock

75

बस एक छोटे से बड़ा उदाहरण:

कोशिश अपनी साइट पर इस जोड़ने के लिए:

* { outline: 2px dotted red; } 
* * { outline: 2px dotted green; } 
* * * { outline: 2px dotted orange; } 
* * * * { outline: 2px dotted blue; } 
* * * * * { outline: 1px solid red; } 
* * * * * * { outline: 1px solid green; } 
* * * * * * * { outline: 1px solid orange; } 
* * * * * * * * { outline: 1px solid blue; } 

डेमो:http://jsfiddle.net/l2aelba/sFSad/


उदाहरण 2:

What does the * * CSS selector do?

डेमो: // jsfiddle:http://jsfiddle.net/l2aelba/sFSad/34/

+1

यह वाकई बहुत अच्छा है, धन्यवाद। –

+7

यह कड़ाई से जवाब नहीं है, लेकिन क्या एक सुंदर दृश्यता है! – aboy021

+1

@ l2aelba वास्तव में स्पष्टीकरण का एक अच्छा टुकड़ा :) +1 – swapnesh

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