उद्धरण मोडमा ब्राउजर राख्ने डक्ट टाइपको छोड्नुहोस्
यदि तपाईं केहि महिना भन्दा बढिका लागि वेब पृष्ठहरू डिजाइन गर्दै हुनुहुन्छ भने, तपाइँ सबै पृष्ठमा लेख्न सक्ने कठिनाइको बारे अधिक जानकारी बारे जान्दछ जुन सबै ब्राउजरमा समान देखिन्छ । वास्तवमा, त्यो असंभव छ। धेरै ब्राउजरहरू विशेष विशेषताहरूसँग लेखिएका थिए जुन उनीहरूले मात्र ह्यान्डल गर्न सक्थे। वा तिनीहरूसँग अन्य ब्राउजरहरू कसरी ह्यान्डल गर्ने भनेर फरक कुराहरू सम्भाल्नका लागि विशेष तरिकाहरू छन्। उदाहरणका लागि:
- नेटस्केप ब्राउजरहरूमा प्रयोगको लागि तहहरू सिर्जना गरियो। तिनीहरू कुनै पनि ब्राउजरमा काम गर्दैनन्, र वास्तवमा नेटस्केप 6.x + मा बिच्छेद भएको छ।
- ईन्टरनेट एक्सप्लोररको लागि इनलाइन फ्रेमहरू मूलतः सिर्जना गरिएका थिए, र पछि एचटीएमटीई विवरणको भाग बन्नु भएको छ।
- इन्टरनेट एक्सप्लोरर 6.0 ले थप स्पेस थप्छ (जस्तै
) वरपर ट्याग, जब सम्म तपाइँ सबै एक (लम्बाई) रेखामा डिभको सामग्री लेख्न सक्नुहुन्न। (आईई 6 सँग धेरै धेरै रक्सी छ साथै यो यो।) - Netscpe 4.7 ले तालिकाहरू प्रदर्शन गर्दैन जुन सही एचटीएमएलमा लेखिएको छैन - यसको सट्टामा खाली पृष्ठ देखाउँछ। यो नेटस्केप 6 मा निश्चित गरिएको थियो।
ब्राउजर विकासकर्ताहरूको लागि समस्या यो हो कि तिनीहरूले वेब ब्राउजरहरू सिर्जना गर्नु पर्छ जुन पुरानो ब्राउजरहरूको लागि बनाइएको वेब पेजहरू सँग मिल्दो छ। यो मुद्दासँग सम्झौता गर्न, ब्राउजर निर्माताले ब्राउजरहरूको लागि काम गर्न मोडहरू सिर्जना गर्यो। यी मोडहरू DOCTYPE तत्वको उपस्थिति वा अनुपस्थिति द्वारा परिभाषित गरिएको छ र के त्यो DOCTYPE कलहरू।
DOCTYPE स्विच गर्दै र "क्वेरी मोड"
यदि तपाइँले तपाइँको वेब पेजमा निम्न DOCTYPE राख्नुहुन्छ भने:
आधुनिक ब्राउजरहरू (एन्ड्रोइड 1+, क्रोम 1+, आईई 6+, आईओएस 1+, फायरफक्स 1+, नेटस्केप 6+, ओपेरा 6+, सफारी 1+) यसले निम्न फेशनमा व्याख्या गर्नेछ:
- किनकि त्यहाँ एकदम सही रूपमा लेखिएको DOCTYPE छ, यो मानक मोड ट्रिगर गर्छ।
- यो HTML 4.01 संक्रमणकालीन कागजात हो
- किनकि यो मानक मोडमा छ, धेरै ब्राउजरहरूले HTML 4.01 पारदर्शीसँग सामग्री अनुपालन (वा अधिक अनुपालन) प्रदान गर्दछ
र यदि तपाईंले आफ्नो कागजातमा यो DOCTYPE राख्नुभयो भने:
यसले आधुनिक ब्राउजरहरूलाई बताउँछ जुन तपाइँ आफ्नो HTML 4.01 पेज DTD सँग सख्त अनुपालनमा प्रदर्शन गर्न चाहनुहुन्छ।
यी ब्राउजरहरू "सख्त" वा "मानक" मोडमा जान्छन् र पृष्ठहरूसँग मानकहरूको अनुपालनमा प्रदान गर्दछन्। (त्यसोभए, यस कागजातको लागि, ब्राउजर द्वारा ट्याग पूर्ण रूपमा बेवास्ता गर्न सकिन्छ, जस्तै FONT तत्व HTML 4.01 स्ट्रिटिकमा बिच्छेद गरिएको छ।)
यदि तपाइँ DOCTYPE पूर्ण रूपमा बाहिर छोड्नु हुन्छ भने, ब्राउजरहरू स्वचालित रूपमा "quirks" मोडमा लुटिएका छन्।
तल तालिकाले देखाउँछ कि सामान्य ब्राउजरहरूले प्राय: DOCTYPE घोषणाहरूसँग प्रस्तुत गर्छ।
माइक्रोसफ्टले यो कठिन बनाउँछ
इन्टरनेट एक्सप्लोरर 6 सँग यो सुविधा छ कि यदि तपाईंले DOCTYPE घोषणा माथि सबै कुरा राख्नुहुन्छ भने, तिनीहरू रक्सी मोडमा जान्छन्। त्यसोभए, यी उदाहरणहरू IE6 ले बिरुद्ध मोडमा राख्नेछ, भले ही DOCTYPE घोषणाहरू सहि मानक मोडमा भन्नुपर्दछ:
र XHTML 1.1 DOCTYPE:
साथै, यदि तपाईं पहिले IE6 पाउनुभयो भने, तपाइँसँग "विशेषता" छ जुन माइक्रोसफ्ट IE8 र IE9 मा थपिएको छ: मेटा तत्त्व स्विचन र वेबसाइट ब्ल्याकलिस्टिङ। वास्तवमा, यी दुई ब्राउजर संस्करणहरू अब सम्म सात (!) भिन्न मोडहरू छन्:
- IE 5.5 रिक्शा मोड (आईई 8 र 9)
- IE 7 मानक मोड (आईई 8 र 9)
- आईई 8 लगभग मानक मोड (आईई 8 र 9)
- IE 8 मानक मोड (आईई 8 र 9)
- IE 9 लगभग मानक मोड (आईई 9)
- IE 9 मानक मोड (आईई 9)
- XML मोड (आईई 9)
IE 8 ले "संगतता मोड" लाई पनि पेश गर्यो जहाँ प्रयोगकर्ताले प्रतिपादन मोडेल फिर्ता IE 7 मोडमा परिवर्तन गर्न सक्दछ। त्यसो भए तापनि यदि तपाईँले DOCTYPE र मेटा तत्वहरू दुवै प्रयोग गरेर मोड सेट गर्न चाहानुहुन्छ भने, तपाईंको पृष्ठ अझै पनि कम मानकमा-अनुकूल मोडमा धक्का हुन सक्छ।
Quirks मोड के हो?
उद्धार मोड सबै अजीब प्रतिपादन र गैर-अनुपालन ब्राउजर समर्थन र हैक जसले वेब डिजाइनरहरूलाई यी चीजहरूको सामना गर्न प्रयोग गरिरहेको थियो। चिन्ता गर्ने ब्राउजर निर्माताहरू यो थियो कि यदि तिनीहरूले आफ्नो ब्राउजरहरू पूर्ण निर्दिष्टीकरण अनुपालनमा स्विच गरे, वेब डिजाइनरहरू छोड्नेछन्।
DOCTYPE स्विच गरेर र "Quirks mode" लाई यो अनुमति दिई वेब डिजाईजरहरू छनौट गर्ने छनौट गर्ने कि ब्राउजरहरूले उनीहरूको एचटीएमएल प्रस्तुत गर्न चाहन्छन्।
उद्धरण मोड प्रभावहरू
त्यहाँ धेरै असरहरू छन् जुन धेरै ब्राउजरहरू Quirks मोडमा प्रयोग गर्छन्:
- केहि ब्राउजरहरूमा, बक्स मोडेल बिरुवा मोडमा बक्स मोडेलको IE 5.5 संस्करणमा परिवर्तन गर्दछ।
- केही ब्राउजरहरूले तालिकाहरूमा पादरी पाएको छैन
- क्यारेक्टर मोडले सीएसएस र सीएसएस लेआउटको पार्सिङलाई नाटकीय रूपमा असर गर्छ, यदि तपाइँ फ्रिकर्स मोडबाट मानक मोडमा पृष्ठहरू परिवर्तन गर्दै हुनुहुन्छ भने, तपाइँको CSS लेआउट परीक्षण गर्न र ठूलो रूपमा पार्स गर्न निश्चित हुनुहोस्।
- उद्धरण मोडमा स्क्रिप्टमा परिवर्तनहरूको लागि हेर्नुहोस्। फायरफक्सले आईडी विशेषता काम गर्दछ, उदाहरणको लागि। IE8 र IE9 सँग त्रिभुज मोडमा स्क्रिप्ट गर्न धेरै नाटकीय परिवर्तनहरू छन्।
त्यहाँ "फरक मानक मोड:" मा पनि एक फरक छन्
- तालिकाभित्र मात्र छविहरूसँगको उचाइको गणना मानक मोडबाट भिन्न हुन्छ।
DOCTYPE कसरी छनौट गर्नुहोस्
म मेरो लेख DOCTYPE सूचीमा अधिक विस्तारमा जान्छु, तर यहाँ थम्बनेलको केहि सामान्य नियमहरू छन्:
- सँधै मानक मोडहरू चयन गर्नुहोस्। र वर्तमान मानक तपाई प्रयोग गरिरहनु पर्छ HTML5 हो: HTML5 DOCTYPE को प्रयोग गर्नबाट टाढाको विशिष्ट कारण नभएसम्म, तपाइँ यो प्रयोग गर्नु पर्छ।
- सख्त एचटीएमएल 4.01 मा जानुहोस् यदि तपाईले विरासत तत्वहरूको प्रमाणीकरण गर्न वा केही कारणका लागि नयाँ सुविधाहरूबाट बच्न चाहानुहुन्छ भने:
- यदि तपाईंले तालिकामा कटाईएको छविहरू छान्नुभयो र तिनीहरूलाई ठीक गर्न चाहनुहुन्न भने, Transitional HTML 4.01 मा जानुहोस्:
- पृष्ठहरू जान्नकालागि बिरुद्ध मोडमा लेख्नुहोस्। सधैँ DOCTYPE प्रयोग गर्नुहोस्। यसले तपाईंलाई भविष्यमा विकास समयमा बचत गर्नेछ, र वास्तवमा कुनै लाभ छैन। IE6 चाँडै लोकप्रियता गुमाउँदै छ र यस ब्राउजरको लागि डिजाइन गर्दै (जसमा अनिवार्य रूपमा रेजिन्स मोडमा डिजाइन गर्ने हो) तपाईं आफैलाई, तपाइँका पाठकहरू र तपाईंको पृष्ठहरू सीमित गर्दै हुनुहुन्छ। यदि तपाईंले IE 6 वा 7 को लागि लेख्नु पर्छ भने, त्यसका लागि सशर्त टिप्पणीहरू प्रयोग गरी तिनीहरूलाई ब्राउज मोडमा आधुनिक ब्राउजरहरू फर्काउनुको सट्टा समर्थन गर्नुहोस्।
किन प्रयोग गर्नुहोस् DOCTYPE
एकपटक तपाईं DOCTYPE स्विचिङ यस प्रकारको बारे एकचोटि एकपटक तपाईं DOCTYPE प्रयोग गरेर तपाईको वेब पृष्ठहरू अझ सीधा प्रभाव पार्न सक्नुहुन्छ भनेर ब्राउजरले तपाईको पृष्ठबाट कस्तो आशा गर्न सक्छ। साथै, तपाईंले एक चोटि DOCTYPE प्रयोग गरिरहनु भएको छ, तपाईले एचटीएमएल लेख्नुहुनेछ जुन मान्य हुनु भएको छ (तपाइँ अझै पनि यसलाई मान्य हुनुपर्छ)। र मान्य XHTML लेखेर, तपाइँ ब्राउजर निर्माताहरूलाई मानक अनुपालन ब्राउजरहरू निर्माण गर्न प्रोत्साहन दिनुहुन्छ।
ब्राउजर संस्करणहरू र कुञ्जी मोडहरू
DOCTYPE | एन्ड्रोइड Chrome फायरफक्स IE 8+ आईओएस ओपेरा 7.5+ सफारी | IE 6 IE 7 ओपेरा 7 | नेटस्केप 6 |
---|---|---|---|
कुनै पनि होइन | उद्धार मोड | उद्धार मोड | उद्धार मोड |
HTML 3.2 | |||
उद्धार मोड | उद्धार मोड | उद्धार मोड | |
HTML 4.01 | |||
संक्रमणकालीन | मानक मोड * | मानक मोड * | मानक मोड |
संक्रमणकालीन | उद्धार मोड | उद्धार मोड | उद्धार मोड |
कठोर | मानक मोड | मानक मोड * | मानक मोड |
कठोर | मानक मोड | मानक मोड * | मानक मोड |
HTML5 | |||
मानक मोड | मानक मोड * | उद्धार मोड | |
* यस DOCTYPE सँग, ब्राउजरहरू मानक मान्यसँग नजिक छन्, तर केही मुद्दाहरू छन् - परीक्षण गर्न निश्चित हुनुहोस्। यो "लगभग मानक मोड" भनिन्छ। |