दिलचस्प पोस्ट
क्या असत्य == 0 और सत्य == 1 पायथन में एक कार्यान्वयन विवरण है या क्या इसकी भाषा की गारंटी है? पास पैरामीटर से गुल टास्क कैसे कस्टम इटरेटर और const_iterators सही ढंग से लागू करने के लिए? PHP: मर्ज 2 बहुआयामी arrays मैं कैसे सत्यापित कर सकता हूं कि कोई Windows सेवा चल रही है या नहीं सी # में एक पाठ फ़ाइल से एक पंक्ति को कैसे हटाएं? क्लाइंट पीसी पर लोकलडीबी परिनियोजन एंड्रॉइड गतिविधि में एक पॉपअप विंडो बनाने में समस्याएं स्थानीय गिट परिवर्तन को हटाने के कई तरीके टेस्टिंग टेक्स्ट () XPath में नोड्स बनाम स्ट्रिंग मान JSON ऑब्जेक्ट को जावास्क्रिप्ट सरणी में परिवर्तित करना PHP read_exif_data और ओरिएंटेशन समायोजित करें OpenGL शेडर के लिए स्पष्ट बनाम स्वचालित विशेषता स्थान बाध्यकारी html2canvas Google मानचित्र पैन के साथ काम नहीं करता है Google Maps v3 में दो बिंदुओं के बीच एक मार्ग ड्राइंग असंगत व्यवहार

टिप्पणी DOCTYPE घोषणा से पहले प्रकट हो सकती है?

मैं अपने HTML कोड के शीर्ष पर एक टिप्पणी ( <!-- this --> शैली) डालनी चाहूंगा, जो कि DOCTYPE घोषणा से पहले है। क्या यह मानकों के अनुरूप है? क्या यह प्रमुख ब्राउज़रों द्वारा समर्थित है? क्या ऐसा करने में कोई नुकसान है?

वेब के समाधान से एकत्रित समाधान "टिप्पणी DOCTYPE घोषणा से पहले प्रकट हो सकती है?"

पहला DOCTYPE लेखन निश्चित रूप से सबसे अच्छा अभ्यास है

मुझे अजीब समस्याएं लंबे, लंबे समय पहले याद हैं, जहां कुछ ब्राउज़र (शायद आईई 6) ने एक DOCTYPE को नजरअंदाज कर दिया था क्योंकि इससे पहले प्रतीत होता है कि कुछ निर्दोष था – मुझे लगता है कि सिर्फ सफेद स्थान है, लेकिन शायद यह एक टिप्पणी थी। किसी भी मामले में, यह एक भयानक, भयानक बग को ट्रैक करना होता था, और निश्चित रूप से DOCTYPE से पहले टिप्पणी या व्हाइटपेस होने का कोई भी उचित कारण नहीं है।

पहला DOCTYPE लेखन, मैं कह सकता हूँ, कुछ अनुभवी वेब डेवलपर्स भयानक, मायावी कीड़े से बचने के लिए करते हैं।

यह करने के लिए पूरी तरह मान्य है

 <!-- this, --> <!DOCTYPE html> 

हालांकि, यह IE के सभी संस्करणों को quirks-mode में लाता है (जब तक कि इसे नॉन-क्विकक्स मोड के लिए मजबूर नहीं किया जाता है – नीचे Gotchas अनुभाग देखें)। सबसे आसान है DOCTYPE के नीचे टिप्पणी को स्थानांतरित करने के लिए

 <!DOCTYPE html> <!-- this, --> 

लेकिन एक और तरीका है कि टिप्पणी को उपयुक्त सशर्त टिप्पणी में "अपग्रेड करें" , जैसे कि:

 <!--[if !IE]> this <![endif]--> <!DOCTYPE html> 

स्पष्टीकरण: एक सशर्त टिप्पणी, आईई की दुनिया में एक टिप्पणी के रूप में गिनती नहीं है।

वैकल्पिक वाक्यविन्यास: भूल जाने / याद रखने के लिए कि सशर्त टिप्पणियां HTML मानक में एक माइक्रोसॉफ्ट घुसपैठ हैं, एक उदाहरण के लिए कर सकता है

 <!--[if anybrowser]> this <![endif]--> <!DOCTYPE html> 

इसी तरह, विशेष रूप से आईई को लक्षित करने के लिए, कोई भी कर सकता है

 <!--[if !anybrowser]> this <![endif]--> <!DOCTYPE html> 

gotchas

एक सशर्त टिप्पणी के अंदर एक टिप्पणी आईई को क्विर्ट्स-मोड में लाएगी यदि आईई ( यानी) यह देखता है ( यदि : [अगर आईई] की स्थिति का उपयोग करता है, या [अगर आईई] के बराबर होता है – जैसे कि [if! Anybrowser] की शर्त मैं ऊपर उल्लेख किया।)। इसलिए, उदाहरण के लिए, यह IE को quirks-mode में लाना होगा:

 <![if IE]><!-- this --><![endif]> <!DOCTYPE html> 

जैसा होगा

 <!--[if IE]><!--><!-- this <![endif]--> <!DOCTYPE html> 

और कई अन्य संस्करण उदाहरण के लिए

 <!--[if IE]><!DOCTYPE html><!--><!-- this <![endif]--> <!DOCTYPE html> 

quirks-mode का कारण नहीं होगा, क्योंकि यहां सशर्त टिप्पणी में किसी भी अन्य सामग्री से पहले एक DOCTYPE है, और इस प्रकार आईई मानता है कि पृष्ठ की पहली सामग्री एक DOCTYPE है

अंत में, नवीनतम आईई संस्करण, आईई 8 और आईई 9, मानक माइक्रोसॉफ्ट के लिए मजबूर किया जा सकता है (और साथ ही क्विर्ट्स-मोड भी) एक अन्य माइक्रोसॉफ्ट आविष्कार – एक्स-यू-कॉमेटेक्ट डायरेक्टिव के उपयोग से। उस मामले में, http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx देखें, फिर

 <!-- this --> <!DOCTYPE html> <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]--> 

आईई 8 और आईई 9 को नो-क्वार्कक्स मोड में बाध्य करेगा, जबकि आईआई 6 और आईई 7 क्विट्स मोड में रहेगा। जबकि, इसके विपरीत, यह

 <!--[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]--> <!DOCTYPE html> 

आईई 8 और आईई 9 को मानक मोड में बाध्य करे , इसके बावजूद कंडीशनल टिप्पणी की सामग्री डॉटसीपी के साथ शुरू नहीं होती है। और आईई 6 और आईई 7 भी नॉन-शॉर्ट्स मोड में बने रहेंगे क्योंकि सशर्त टिप्पणी उन्हें लक्षित नहीं करती है।

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

( ट्रिगरिंग अलग रेंडरिंग मोड देखें)

इससे IE7 को quirks मोड में रेंडर करने का कारण हो सकता है जैसे कि इस पृष्ठ के अनुसार कोई कार्यप्रणाली बिल्कुल नहीं थी।

कार्यप्रणाली से पहले की टिप्पणियों की अनुमति है, लेकिन सभी आईई संस्करणों को quirks मोड में वापस करने के लिए कारण हैं। वे वास्तव में, उस उद्देश्य के लिए कभी-कभी उपयोग किए जाते हैं एक्सएमएल घोषणा ( <?xml version ...?> ) का एक ही प्रभाव है, आईई 6 में और नीचे