2013-04-22 13 views
5

मैं समय की :last-child चयनकर्ता बहुत उपयोग करते हैं, ज्यादातर जब एक सूची जहां मैं पिछले बच्चे के लिए border: none; प्रयोग border-bottom का उपयोग कर, या जब मार्जिन का उपयोग कर। तो मेरा सवाल यह है कि, प्रदर्शन बिंदु से :last-child चयनकर्ता खराब है?क्या है: प्रदर्शन के लिए अंतिम-बच्चे चयनकर्ता खराब है?

इसके अलावा मैंने सुना है कि इसे सीएसएस 2 विनिर्देश से हटा दिया गया था क्योंकि :first-child का उपयोग ब्राउज़र के पता लगाने के लिए आसान है, लेकिन :last-child का पता लगाने के लिए इसे वापस लूप की आवश्यकता है।

+0

तो ': अंतिम child' केवल सूची के अंतिम बच्चे से निचली सीमा को हटाने के लिए की जरूरत है, आप शीर्ष सीमा जोड़ सकते हैं और से' पहले इसे हटा सकता है: child'। बेशक, यह आपकी आवश्यकताओं को पूरा नहीं कर सकता है। – micadelli

+0

क्या आपने इसे पहले ही पढ़ लिया है? http://snook.ca/archives/html_and_css/css-parent- चयनकर्ता –

+0

@ t.niese: सीएसएस 4 शायद माता-पिता चयनकर्ता को पेश करेगा, अंतिम बच्चा भी विनिर्देशन में है: http://www.w3.org/TR/selectors4/(लेकिन निश्चित रूप से कार्यान्वयन में प्रदर्शन के मुद्दे हो सकते हैं क्योंकि आलेख दिखाता है) –

उत्तर

9

यदि यह प्रदर्शन चिंताओं के लिए सीएसएस 2 से खिसका दिया गया है, लेकिन चयनकर्ता 3 में पुनः शुरू किया, मुझे लगता है, क्योंकि प्रदर्शन कोई मुद्दा नहीं रह गया है के रूप में यह पहले से था बस इतना ही।

याद रखें कि :last-childनिश्चित और केवल तरह से एक माता पिता की अंतिम संतान चयन करने के लिए है (:nth-last-child(1) के अलावा, जाहिर है)। यदि ब्राउज़र कार्यान्वयनकर्ताओं के पास प्रदर्शन चिंताएं नहीं हैं, न ही हमें लेखकों के रूप में जाना चाहिए।

केवल बाध्यकारी कारण मैं के रूप में करने का विरोध किया :last-child:first-child के साथ एक बॉर्डर शैली ओवरराइड करने के लिए के बारे में सोच सकते हैं IE7 और IE8 के साथ संगतता अनुमति है। यदि यह प्रदर्शन को बढ़ावा देता है, तो यह एक दुष्प्रभाव हो। आप IE7 और IE8 समर्थन की जरूरत नहीं है, तो आप :last-child से अधिक :first-child उपयोग करने के लिए मजबूर महसूस नहीं करना चाहिए। यहां तक ​​कि यदि ब्राउज़र प्रदर्शन बिल्कुल महत्वपूर्ण है, तो आपको समय-समय पर अनुकूलन के आधार पर परीक्षण और बेंचमार्किंग द्वारा उचित तरीके से संबोधित करना चाहिए।

+1

यदि आपके पास सर्वर पर पृष्ठ के प्रतिपादन पर नियंत्रण है, तो 'अंतिम-बच्चे' किसी अन्य तत्व के अंतिम बाल तत्व का चयन करने का एकमात्र तरीका नहीं है। आप एक वर्ग जोड़ सकते हैं और इसका उपयोग कर इसे चुन सकते हैं। – andrewb

-1

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

+0

कोई संदर्भ? – Pavlo

+0

नहीं, लेकिन जैसा कि यह विनिर्देशन में एक विशेषता है, और क्योंकि डब्ल्यू 3 सी ने इसे पूरी तरह से प्रलेखित चयनकर्ता बना दिया है, हम केवल यह मान सकते हैं कि उन्होंने इस पर काम किया है। – wazaminator

+2

विशिष्टता और कार्यान्वयन दो अलग-अलग चीजें हैं। इससे कोई फर्क नहीं पड़ता कि चयनकर्ता आधिकारिक तौर पर सीएसएस विनिर्देश का हिस्सा है या नहीं। बस दावा करते हुए कि कोई समस्या नहीं है क्योंकि लोगों के एक समूह ने सोचा कि * क्या करना चाहिए * यह एक बहुत ही मजबूत तर्क नहीं है। –

2

सामान्य में, कोर CSS चयनकर्ताओं का काफी अच्छी तरह से है कि हम में से ज्यादातर के लिए उन्हें का उपयोग कर के बारे में चिंतित नहीं होना चाहिए प्रदर्शन करते हैं। हां, उनमें से कुछ दूसरों की तुलना में खराब प्रदर्शन करते हैं, लेकिन यहां तक ​​कि सबसे खराब प्रदर्शन करने वाले भी आपकी साइट में मुख्य बाधा बनने की संभावना नहीं है।

जब तक आप पहले से ही पूर्णता के लिए सब कुछ अनुकूलित किया है, मैं इस बारे में चिंता नहीं की सलाह देंगे। वास्तविक अपनी साइट पर प्रदर्शन समस्याओं को ढूंढने और उन्हें ठीक करने के लिए YSlow जैसे प्रोफाइलिंग टूल का उपयोग करें।

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

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