2010-09-14 20 views
16

काम पर यहां मौजूद लोगों में से एक तत्व टैग आईडी को तत्व आईडी के लिए अपने सभी सीएसएस चयनकर्ताओं के सामने रखता है। उदाहरण के लिए:सीएसएस: आईडी से पहले टैग प्रकार का उपयोग करें?

div#footer { 

} 

यह, के रूप में विरोध करने के लिए बस:

#footer { 

} 

उनका तर्क यह है कि यह सबसे ब्राउज़रों के लिए एक तेज देखने क्योंकि वे हर प्रकार की id विशेषताओं की जांच की जरूरत नहीं है है है तत्व का - बस div तत्व। उन्होंने यह भी बताया कि यह कक्षाओं के साथ किया जाना चाहिए (उदाहरण के लिए div.header-label<div class="header-label"... तत्वों के लिए)।

उचित और तर्कसंगत लगता है, लेकिन क्या यह सच है?

+0

div.footer पर अपना उदाहरण बदलें, क्योंकि जैसा कि आपने कहा था, आपके सहकर्मी ने कहा कि इसे कक्षाओं के साथ किया जाना चाहिए। कई जवाब बता रहे हैं कि किसी पृष्ठ के संदर्भ में एक आईडी अद्वितीय होनी चाहिए। – JohnB

+0

"किसी पृष्ठ के संदर्भ में" - और यह वास्तव में इस मुद्दे का क्रूक्स है। टैग + आईडी चयनकर्ता का उपयोग विभिन्न पृष्ठों पर अलग-अलग आईडी का उपयोग करने के लिए किया जा सकता है, क्योंकि टैग जोड़कर यह निर्दिष्ट किया जाता है कि नियम एक साथ मिलने पर लागू किए जाने हैं। – d2burke

+0

यह भी देखें: http://stackoverflow.com/q/3666286/124238 –

उत्तर

19

आपका सहकर्मी गलत है, यह बिल्कुल विपरीत है:

लेकिन यह भी मन में है कि सीएसएस अनुकूलन सूक्ष्म अनुकूलन और अंत में बस में अप्रासंगिक है ज्यादातर मामलों:

+1

+1! – mkoistinen

+2

Google लिंक: * "टैग चयनकर्ताओं पर कक्षा और आईडी चयनकर्ताओं को पसंद करें।" * काश मैं 3 साल पहले इस प्रश्न से पूछा था! **: (** मैंने सोचा था कि जितना संभव हो टैग चयनकर्ताओं का उपयोग करना अच्छा था; मेरा सीएसएस दर्शन पीछे की ओर है! महान सवाल फोबोबिस और महान उत्तर डेव! – JohnB

2

यह शायद सच नहीं है; लेआउट इंजन एक हैशटेबल बनाने की संभावना है।

हालांकि, यह निश्चित रूप से एक उल्लेखनीय अंतर नहीं देगा, जब तक कि आपके पृष्ठ में तत्वों की पागल संख्या न हो। (जिस स्थिति में आपको खराब समस्याएं मिली हैं)

आपको जो भी चयनकर्ता अधिक पढ़ा जा सकता है उसका उपयोग करना चाहिए।
साथ ही, याद रखें कि कोई #footer को <span> में बदल सकता है।

+0

मुझे आश्चर्य है कि क्या जॉन स्कीट या कोई यह सुनिश्चित करेगा कि कम से कम इस प्रश्न का उत्तर क्रोम है चिंतित। – JohnB

+1

@ जॉन बी: ​​वेबकिट स्रोत पढ़ें। (और शुभकामनाएं) – SLaks

0

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

किसी भी मामले में #footer के बाद से दो उदाहरण अर्थात् अलग हैं div#footer नहीं होगा। तो व्यक्तिगत स्वाद से अलग हम दो अलग-अलग चीजों के बारे में बात कर रहे हैं। फिर यदि आप वास्तव में आईडी का उपयोग कर रहे हैं क्योंकि उनका उपयोग किया जाना चाहिए तो कोई अंतर नहीं है ..

+2

हालांकि यह किसी भी/वैध/मामलों को कवर नहीं करेगा, क्योंकि आईडी के टैग पर ध्यान दिए बिना अद्वितीय होना चाहिए। – mkoistinen

+0

हां, लेकिन मुझे सीएसएस की अच्छी बाधाओं के बारे में हर तरह की चीज़ देखने के लिए उपयोग किया जाता है, इसलिए यह सुनिश्चित करना बेहतर होगा कि किसी भी मामले में मैंने अभी निर्दिष्ट किया है! अच्छा दस्तावेज़ संदर्भ के लिए – Jack

1

एकमात्र समय यह एक उपयोगी अभ्यास होगा, आईएमएचओ, जब आपके पास एक ही आईडी का उपयोग करके एकाधिक टैग प्रकार होते हैं, जो कि है बेशक, वैसे भी अमान्य। हालांकि, यदि आपको प्रारंभ करने के लिए अमान्य HTML/CSS का एक टुकड़ा दिया गया था, और TAGTYPE # आईडी का उपयोग करके इसे ठीक से ठीक नहीं किया जा सका।

0

आईडी को टैग संलग्न करना अधिक विशिष्ट है। आप अपने सीएसएस में एक आईडी बना सकते हैं जिसे आप किसी भी तत्व पर लागू कर सकते हैं, लेकिन यदि आप टैग नाम संलग्न करते हैं तो आप केवल उन नियमों का उपयोग कर सकते हैं (जब तक कि आप अन्य तत्वों, कक्षाओं या आईडी को कॉमा के साथ सूचीबद्ध नहीं करते) टैग आईडी आईडी के साथ टैग करें :

http://www.w3.org/TR/CSS2/selector.html#id-selectors

0

यह इस सीएसएस "सुविधा" के लिए एक वैध उपयोग कल्पना करना मुश्किल है।

मान लीजिए कि एक फॉर्म में year फ़ील्ड है।

input#year { 
    width: 4em; 
} 

यह लागू करने अगर, उदाहरण के लिए, क्षेत्र एक select के रूप में प्रदान किए गए नियम रोका जा सके।

प्रदर्शन कारक के लिए, मुझे लगता है कि @Dave सबसे अच्छा debunking करता है।

+0

तो, मैं यहां शैतानों का वकील खेल रहा हूं: क्या होगा यदि एक ही आईडी को एक अलग टैग में बड़े पैमाने पर एप्लिकेशन के किसी अन्य पृष्ठ में उपयोग किया गया था? कहें कि आप jQuery में किसी मान को संदर्भित करने के लिए उस आईडी का उपयोग करना चाहते हैं, चाहे तत्व प्रकार चाहे, लेकिन जहां तक ​​डिस्प्ले जाता है, आप चाहते हैं तत्व प्रकार पर निर्भर करने के लिए इसे एक निश्चित तरीके से स्टाइल करना सुनिश्चित करें? – d2burke

+0

जैसा मैंने कहा, कल्पना करना मुश्किल है। – harpo

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