DOCTYPE क्या है?


174
  • DOCTYPE क्या है और मैं इसका उपयोग क्यों करना चाहता हूं?
  • मेरे द्वारा उपयोग किए जाने वाले विभिन्न DOCTYPEs क्या हैं?
  • मानकों और quirks मोड के बीच अंतर क्या है, और क्या कुछ quirks हैं जो मैं अलग-अलग सेट किए गए DOCTREPEs के साथ चला सकता हूं?

अंत में, क्या उचित DOCTYPE है जो मुझे उपयोग करना चाहिए?


9
क्या यह विकी नहीं होना चाहिए?
एलेक्स

जवाबों:


76

मूल रूप से, DOCTYPE उस HTML का वर्णन करता है जिसका उपयोग आपके पृष्ठ में किया जाएगा।

पृष्ठ को कैसे रेंडर किया जाए, यह निर्धारित करने के लिए ब्राउज़र DOCTYPE का उपयोग करते हैं। DOCTYPE सहित या किसी गलत व्यक्ति को शामिल नहीं किया जा सकता, जो क्वर्की मोड को ट्रिगर कर सकता है।

किकर यहाँ है, कि इंटरनेट एक्सप्लोरर में quirks मोड फ़ायरफ़ॉक्स (और अन्य ब्राउज़रों) में quirks मोड से काफी अलग है; इसका अर्थ है कि आपके पास बहुत कठिन काम होगा, यह सुनिश्चित करने के लिए कि आपके पेज को सभी ब्राउज़रों के साथ लगातार रेंडर करने की कोशिश की जा रही है, यदि क्वर्की मोड को ट्रिगर किया गया है, तो यदि आप इसे मानक मोड में प्रदान करते हैं, तो।

विकिपीडिया में विभिन्न DOCTYPEs का उपयोग करते समय रेंडरिंग में अंतर का अधिक गहराई से सारांश है । XHTML कुछ DOCTYPEs द्वारा सक्षम है, और XHTML के उपयोग के बारे में काफी बहस है जो कि XHTML - मिथकों और वास्तविकता में अच्छी तरह से शामिल है

DOCTYPEs को प्रस्तुत करने वाले विभिन्न "मानकों के अनुरूप" के बीच सूक्ष्म अंतर हैं, जैसे कि HTML5 DOCTYPE ( <!DOCTYPE html>, HTML5 से पहले, केवल "पतला सिद्धांत" के रूप में जाना जाता है जो पुराने ब्राउज़रों में मानकीकृत प्रतिपादन को ट्रिगर नहीं करता है) और अन्य DOCTYPEs जैसे कि इस के लिए एक। HTML 4.01 संक्रमणकालीन:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

39
इन दिनों मैं HTML5 DOCTYPE का पक्ष लेता हूं: <! DOCTYPE html> यह IE6 सहित सभी आधुनिक ब्राउज़रों में काम करता है।
वाल्टर रम्सबी

53
IE6 Nov आधुनिक ब्राउज़र

26

DOCTYPE उपभोक्ता उपयोगकर्ता एजेंट (वेब ​​ब्राउज़र, वेब क्रॉलर, सत्यापन उपकरण) को बताता है कि फ़ाइल किस प्रकार का दस्तावेज़ है। इसका उपयोग करने से यह सुनिश्चित होता है कि उपभोक्ता HTML को सही ढंग से पार्स करता है जैसा आपने इरादा किया था।

HTML, XHTML और फ्रेमसेट के लिए कई अलग-अलग दस्तावेज़ हैं और इनमें से प्रत्येक में दो मोड स्ट्रिक्ट और ट्रांजिशनल हैं। सख्त कहते हैं कि आपका मार्कअप परिभाषित मानकों का सटीक उपयोग कर रहा है। देखें W3C DTDs अधिक जानकारी के लिए पेज।

Quirksmode मूल रूप से ब्राउज़र वार्स दिनों से लेआउट विधि है जब मानकों को बहुत कम सम्मान और परिभाषित किया गया था। आम तौर पर एक मानक मोड पृष्ठ, जो वैध है, विभिन्न ब्राउज़रों में अधिक लगातार लेआउट करेगा, लेकिन कुछ विशेषताओं की कमी हो सकती है जिनकी आपको आवश्यकता होती है। ऐसी ही एक विशेषता एंकर टैग की लक्ष्य विशेषता है। Quirksmode साइट इन मतभेदों के लिए एक महान स्रोत है।

एक अंतिम विचार यह है कि नया HTML5 मानक एक बहुत ही सरल DOCTYPE का उपयोग करता है:

<!DOCTYPE html>

यह निर्दिष्ट करने के लिए कि आपके पृष्ठ मानक मोड में हैं, और HTML हैं, इसके लिए DOCTYPE का उपयोग करना एक सुसंगत संगत तरीका है। यह वह विधि है जिसे Google उपयोग करता है, और याद रखने के लिए उचित रूप से आसान है। जब तक आप XHTML का उपयोग करने की योजना नहीं बनाते मैं इस DOCTYPE का उपयोग करने की सलाह देता हूँ।


2
क्या DOCTYPE HTML टैग है? यदि ऐसा है, तो हमें इसकी शुरुआत करने की आवश्यकता क्यों है?
जिज्ञासु

2
@vipinkoul DOCTYPE टैग निर्दिष्ट करता है कि आप किस प्रकार का HTML दस्तावेज़ उपयोगकर्ता-एजेंट भेज रहे हैं। यह HTML या XHTML या एक फ्रेम्ससेट हो सकता है। और यह सख्त एचटीएमएल / एक्सएचटीएमएल / फ्रेमेसेट या ट्रांजिशनल एचटीएमएल / एक्सएचटीएमएल / फ्रेमसेट हो सकता है। अधिकतर यह असर करता है कि जब यह एक त्रुटि का सामना करता है तो पार्सर कैसे प्रतिक्रिया करता है।
रोब

6

एक doctype परिभाषित करता है कि आपके दस्तावेज़ का कौन सा संस्करण HTML / XHTML का उपयोग करता है। आप एक सिद्धांत का उपयोग करना चाहते हैं ताकि जब आप अपना कोड सत्यापनकर्ताओं के माध्यम से चलाएं, तो सत्यापनकर्ताओं को पता चले कि HTML / XHTML के किस संस्करण के खिलाफ जाँच की जानी है। यह पृष्ठ एक अच्छा अवलोकन प्रदान करता है:

एक सिद्धांत जोड़ने के लिए मत भूलना

आपके द्वारा उपयोग किए जाने वाले सामान्य सिद्धांत यहां सूचीबद्ध हैं:

डीटीडी की अनुशंसित सूची

आपको किस सिद्धांत का उपयोग करना चाहिए, यह उस कोड पर निर्भर करता है जिसका आप उपयोग कर रहे हैं, लेकिन एक विचार प्राप्त करने के लिए, W3C सत्यापनकर्ता के माध्यम से अपने कोड को चलाने का प्रयास करें और विभिन्न सिद्धांतों को आज़माने के लिए "अधिक विकल्प" मेनू में दस्तावेज़ प्रकार ड्रॉप-डाउन मेनू का उपयोग करें। ।

W3C मार्कअप सत्यापन सेवा


3

HTML में (XHTML सहित) वेब पेजों पर उपयोग किया जाता है, DOCTYPE एक स्ट्रिंग है जो DOCTYPE की सटीक वर्तनी के आधार पर, कुछ ब्राउज़र मोड्स (quirks मोड, मानक मोड, लगभग मानक मोड) को ट्रिगर करता है। आप इसका उपयोग एक ब्राउज़र मोड का चयन करने के लिए करना चाहते हैं जो आपके पेज को सबसे अच्छा सूट करता है।

औपचारिक रूप से, SGML और XML में, DOCTYPE घोषणा एक दस्तावेज़ प्रकार परिभाषा (DTD) का संदर्भ है, जो मार्कअप भाषा के औपचारिक वाक्यविन्यास नियमों को निर्दिष्ट करता है। किसी भी ब्राउज़र ने कभी भी किसी चीज़ के लिए DTDs का उपयोग नहीं किया है या यहां तक ​​कि उन्हें एक्सेस नहीं किया है। हालांकि, वे HTML3 मोड को छोड़कर SG3 और XML मार्कअप वैलिडेटर जैसे W3C मार्कअप वैलिडेटर द्वारा उपयोग किए जाते हैं । इसलिए, DOCTYPE का विकल्प यह निर्धारित करता है कि यदि दस्तावेज प्रस्तुत किया जाता है तो एक सत्यापनकर्ता कैसे काम करता है। हालांकि, ऑपरेशन के सत्यापनकर्ता मोड को इसके उपयोगकर्ता इंटरफ़ेस में भी चुना जा सकता है। (SGML और XML प्रोसेसर DOCTYPEs का उपयोग अन्य तरीकों से भी कर सकते हैं, लेकिन यह प्रश्न जाहिरा तौर पर HTML संदर्भ और वेब ब्राउज़र और बारीकी से संबंधित सॉफ़्टवेयर तक सीमित होने के लिए है।)

DOCTYPEs की कोई आधिकारिक सूची नहीं है। प्रत्येक HTML विनिर्देश या ड्राफ्ट अपने स्वयं के DOCTYPE, या DOCTYPEs को परिभाषित करता है। ब्राउज़र द्वारा मोड का चयन करते समय ब्राउज़र द्वारा मान्यता प्राप्त DOCTYPEs का सेट। व्यवहार में, <DOCTYPE html> HTML5 में परिभाषित के अलावा DOCTYPE का उपयोग करने का कोई कारण नहीं है , हालांकि HTML5 कुछ "विरासत DOCTYPEs" को भी सूचीबद्ध करता है। यदि आप मानक मोड चाहते हैं (नए पृष्ठों के लिए अनुशंसित) तो आप DOCTYPE का उपयोग कर सकते हैं और यदि आप quirks मोड चाहते हैं (जो आपको विरासत पृष्ठों की आवश्यकता हो सकती है) तो DOCTYPE का उपयोग न करें।

"मानक मोड" का अर्थ आम तौर पर ऑपरेशन का तरीका होता है जहां एक ब्राउज़र HTML, सीएसएस, डोम और अन्य विशिष्टताओं का पालन करता है जो इसे सबसे अच्छा कर सकता है। इसका मतलब आमतौर पर पूर्ण अनुरूपता नहीं है। अलग-अलग ब्राउज़रों में "Quirks मोड" अलग है, लेकिन आम तौर पर इसका अर्थ है IE 5 जैसे बहुत पुराने ब्राउज़रों के व्यवहार का अनुकरण करने का प्रयास। उद्देश्य पुराने पृष्ठों को काम करना है, इस धारणा के तहत कि वे सुविधाओं और बग पर भरोसा कर सकते हैं। पुराने ब्राउज़र। विवरण देखें Quirks मोड में क्या होता है? ध्यान दें कि एचटीएमएल 5 में "क्विरक्स मोड" की एक अलग, अधिक सीमित अवधारणा है, जो क्वर्क मोड लिविंग स्टैंडर्ड नामक दस्तावेज़ से बहुत मिलती जुलती है ।

एक विशिष्ट मुद्दा यह है कि तत्व चौड़ाई की गणना अलग-अलग तरीके से quirks मोड और मानकों मोड में की जाती है। इसका मतलब है कि किसी पृष्ठ का लेआउट कम या ज्यादा बदला हुआ हो सकता है या पूरी तरह से गड़बड़ हो सकता है, अगर quirks मोड में काम करने के लिए डिज़ाइन किया गया पृष्ठ मानकों मोड (या इसके विपरीत) में देखा जाता है।

इसलिए आपको <!DOCTYPE html>नए पृष्ठों के लिए उपयोग करना चाहिए और जो भी आप DOCTYPE (यदि कोई हो) पुराने पन्नों के लिए उपयोग कर रहे हैं।

हालाँकि, quirks मोड का अर्थ है, कुछ ब्राउज़रों में, कि CSS की कई नई सुविधाएँ समर्थित नहीं हैं। इसका मतलब है कि यदि आप कुछ CSS3 की सुविधा के साथ एक पुराने पृष्ठ को बढ़ाना चाहते हैं, तो मानक मोड को ट्रिगर करने वाले DOCTYPE पर स्विच करना अच्छी तरह से आवश्यक हो सकता है। ऐसे मामले में, आपको यह देखने के लिए पृष्ठ की समीक्षा और परीक्षण करने की आवश्यकता है कि क्या यह मानक मोड में चलेगा।


अतिरिक्त जानकारी के लिए, विशेष रूप से इन लोगों के लिए धन्यवाद: «कोई ब्राउज़र कभी भी कुछ भी करने के लिए DTDs इस्तेमाल किया गया है या फिर उन्हें पहुँचा» और «वहाँ के अलावा किसी अन्य DOCTYPE उपयोग करने के लिए कोई कारण नहीं है <DOCTYPE html>के रूप में एचटीएमएल 5 में परिभाषित »।
आर्मफूट

2

Doctypes ब्राउज़र को बताते हैं कि पृष्ठ किस भाषा में लिखा गया है, यह HTML या XHTML हो। उदाहरण के लिए,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

पेज के रूप में प्रस्तुत करने के लिए ब्राउज़र को बताएं HTML4 strict। पुराने ब्राउज़र गलत तरीके से पृष्ठों को प्रस्तुत करते थे और इसलिए नए ब्राउज़र पुराने ब्राउज़रों की त्रुटियों का अनुकरण करते हैं जब उन्हें एक पुराना सिद्धांत मिलता है।

आज आपको कम से कम HTML4 या बेहतर XHTML का उपयोग करना चाहिए।

Doctypes के बारे में एक ब्लॉग प्रविष्टि सही DOCTYPE के साथ आपकी साइट को ठीक कर रही है! ( ए लिस्ट के अलावा )।


1

सबसे पहले, कोई एक सिद्धांत नहीं है जिसका आपको उपयोग करना चाहिए, लेकिन अधिकांश डिज़ाइनर इसे XHTML 1.0 स्ट्रिक्ट के भीतर काम करने की कोशिश करते हैं।

एक doctype आपके HTML में आपके द्वारा उपयोग किए जाने वाले टैगों की घोषणा से अधिक कुछ नहीं है (हालांकि ब्राउज़र परिभाषित किए गए से अधिक या कम उपयोग कर सकते हैं) आप वास्तव में doctype फ़ाइल खोल सकते हैं और पढ़ना शुरू कर सकते हैं ( XHTML 1.0 Strict )

यदि आप एक सिद्धांत को निर्दिष्ट नहीं करते हैं, तो ब्राउज़र अनुमान लगाने की पूरी कोशिश करेगा लेकिन हमेशा सही प्रकार को हिट नहीं करता है।

Quirks मोड ब्राउज़र द्वारा उपयोग की जाने वाली तकनीक है जो पीछे की ओर संगत है, quirks मोड का एक बड़ा उदाहरण है कि IE कैसे बॉक्स को रेंडर करता है


1

एक सिद्धांत एक दस्तावेज है जो बताता है कि एक एक्सएचटीएमएल जैसे दस्तावेज़ की सामग्री कैसे दिख सकती है (एक वेबपेज की तरह)। नोट: यह केवल उक्त पृष्ठ के वाक्य-विन्यास को परिभाषित करता है, पृष्ठ का प्रतिपादन DTD द्वारा परिभाषित नहीं है!

उदाहरण के लिए, एक <table>सिद्धांत परिभाषित कर सकता है कि -tag कैसा दिख सकता है - जो इसे स्वीकार करता है, और प्रत्येक विशेषता के लिए कौन से मूल्य / मान लिए गए हैं। इसे अपने वर्तमान वेबपेज के लिए एक शब्दांश के रूप में सोचें।

विकिपीडिया में विभिन्न सिद्धांतों पर एक सूचनात्मक पृष्ठ है जो आम उपयोग में हैं। आप पर ध्यान दें - आपका अपना सिद्धांत बनाने से आपको कुछ नहीं रोक सकता है। हालाँकि, संभावना यह है कि ब्राउज़र को यह नहीं पता कि आपके दस्तावेज़ को कैसे प्रस्तुत किया जाए।

किस DTD का उपयोग करना है यह इस बात पर निर्भर करता है कि आप क्या लिखने जा रहे हैं। उदाहरण के लिए, XHTML में HTML की तुलना में एक अलग DTD है।


1

वेब पर, एक सिद्धांत कुछ भी नहीं करता है, लेकिन अगर आप मानक, लगभग मानक या विचित्र मोड चाहते हैं, तो ब्रॉयर को बताएं।

Quirks मोड में क्या परिवर्तन ब्राउज़र पर निर्भर करता है: फ़ायरफ़ॉक्स, ओपेरा, सफारी, और क्रोम quirks का एक सीमित सेट लागू करते हैं, जैसे कोड <table><tr><td><img></td></tr></table>(समाधान :) में पाठ descenders के लिए जगह को हटाने td img { vertical-align:bottom; }। दूसरी ओर, IE, IE5.5 में रेंडरिंग इंजन में बदल जाता है। इसका मतलब है कि आप 2000 से लागू नई सुविधाओं में से किसी का भी उपयोग नहीं कर पाएंगे ।

मानक मोड को ट्रिगर करने के लिए, मैं HTML5 सिद्धांत का उपयोग करने का सुझाव देता हूं <doctype html>, क्योंकि यह याद रखना सबसे आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.