क्या(गैर-शून्य) स्व-समापन टैग HTML5 में मान्य हैं?




syntax w3c-validation (4)

एचटीएमएल 5 मूल रूप से व्यवहार करता है जैसे पिछला स्लैश नहीं है। एचटीएमएल 5 वाक्यविन्यास में एक स्व-समापन टैग जैसी कोई चीज नहीं है।

  • <p/> , <div/> जैसे गैर-शून्य तत्वों पर स्वयं-बंद टैग बिल्कुल काम नहीं करेंगे। पिछला स्लैश अनदेखा कर दिया जाएगा, और इन्हें ओपनिंग टैग के रूप में माना जाएगा। यह घोंसले की समस्याओं का कारण बन सकता है।

    यह इस बात पर ध्यान दिए बिना कि क्या स्लैश के सामने व्हाइटस्पेस है: <p /> और <div /> भी इसी कारण से काम नहीं करेगा।

  • <br/> या <img src="" alt=""/> जैसे शून्य तत्वों पर स्व-समापन टैग काम करेंगे , लेकिन केवल इसलिए कि पीछे की स्लैश को अनदेखा किया जाता है, और इस मामले में सही व्यवहार में परिणाम होता है।

नतीजा यह है कि, आपके पुराने "एक्सएचटीएमएल 1.0 में वर्क / एचटीएमएल 1.0 के रूप में काम करने वाले कुछ भी काम करने के लिए जारी रहेगा जैसा कि पहले किया गया था: गैर-शून्य टैग पर पीछे की ओर स्लेश को स्वीकार नहीं किया गया था, जबकि शून्य तत्वों पर पिछला स्लैश काम करता था।

एक और नोट: एचटीएमएल 5 दस्तावेज़ को एक्सएमएल के रूप में प्रस्तुत करना संभव है, और इसे कभी-कभी "एक्सएचटीएमएल 5.0" कहा जाता है। इस मामले में एक्सएमएल के नियम लागू होते हैं और स्वयं बंद टैग हमेशा संभाले जाएंगे। इसे हमेशा एक एक्सएमएल माइम प्रकार के साथ परोसा जाना चाहिए।

डब्ल्यू 3 सी वैलिडेटर को non-void तत्वों पर स्वयं-बंद टैग (जो " /> " के साथ समाप्त होते हैं) पसंद नहीं करते हैं। (शून्य तत्व वे हैं जिनमें कभी भी कोई सामग्री नहीं हो सकती है।) क्या वे अभी भी HTML5 में मान्य हैं?

स्वीकार्य शून्य तत्वों के कुछ उदाहरण:

<br />
<img src="" />
<input type="text" name="username" />

अस्वीकृत गैर-शून्य तत्वों के कुछ उदाहरण:

<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />

नोट: डब्ल्यू 3 सी वैधता वास्तव में शून्य स्व-समापन टैग स्वीकार करता है: लेखक को मूल रूप से एक साधारण टाइपो ( \> बजाय /> ) की वजह से समस्या थीहालांकि, सामान्य रूप से HTML5 में स्वयं-बंद टैग 100% मान्य नहीं हैं, और उत्तर विभिन्न HTML स्वादों में स्वयं-समापन टैग के मुद्दे पर विस्तृत हैं।


चूंकि निकिता स्कार्त्सोव ने बताया, एक स्व-समापन div मान्य नहीं होगा। ऐसा इसलिए है क्योंकि एक div एक सामान्य तत्व है , शून्य तत्व नहीं है। एचटीएमएल 5 spec के अनुसार, टैग जिनमें कोई सामग्री नहीं हो सकती है ( शून्य तत्वों के रूप में जाना जाता है) स्वयं बंद हो सकता है *। इसमें निम्नलिखित टैग शामिल हैं:

area, base, br, col, embed, hr, img, input, 
keygen, link, meta, param, source, track, wbr

उपरोक्त टैग पर "/" पूरी तरह से वैकल्पिक है, इसलिए, <img/> <img> से अलग नहीं है, लेकिन <img></img> अमान्य है।

* नोट: विदेशी तत्व भी स्वयं बंद हो सकते हैं, लेकिन मुझे नहीं लगता कि यह इस उत्तर के दायरे में है।


व्यावहारिक रूप से, एचटीएमएल में स्वयं बंद टैग का उपयोग करना चाहिए जैसा कि आप उम्मीद करेंगे। लेकिन यदि आप वैध HTML5 लिखने के बारे में चिंतित हैं, तो आपको समझना चाहिए कि इस तरह के टैग का उपयोग आपके द्वारा उपयोग किए जा सकने वाले दो अलग-अलग दो वाक्यविन्यास रूपों में कैसे व्यवहार करता है। एचटीएमएल 5 एचटीएमएल सिंटैक्स और एक्सएचटीएमएल सिंटैक्स दोनों को परिभाषित करता है, जो समान हैं लेकिन समान नहीं हैं। कौन सा उपयोग किया जाता है वेब सर्वर द्वारा भेजे गए मीडिया प्रकार पर निर्भर करता है।

संभावना से अधिक, आपके पृष्ठों को text/html रूप में परोसा जा रहा है, जो अधिक उदार HTML वाक्यविन्यास का पालन करता है। इन मामलों में, एचटीएमएल 5 कुछ प्रारंभिक टैग को वैकल्पिक होने से पहले / इसे समाप्त करने से पहले अनुमति देता है>। इन मामलों में, / वैकल्पिक और अनदेखा है, इसलिए <hr> और <hr /> समान हैं। एचटीएमएल स्पेक इन "शून्य तत्वों" को कॉल करता है, और मान्य लोगों की एक सूची देता है। कड़ाई से बोलते हुए, वैकल्पिक / केवल इन शून्य तत्वों के प्रारंभ टैग के भीतर मान्य है; उदाहरण के लिए, <br /> और <hr /> मान्य HTML5 हैं, लेकिन <p /> नहीं है।

एचटीएमएल 5 spec HTML लेखकों और वेब ब्राउज़र डेवलपर्स के लिए सही क्या है, के बीच एक स्पष्ट भेद बनाता है, दूसरे समूह को सभी प्रकार के अमान्य "विरासत" वाक्यविन्यास को स्वीकार करने की आवश्यकता होती है। इस मामले में, इसका मतलब है कि एचटीएमएल 5-अनुरूप ब्राउज़र अवैध स्व-बंद टैग स्वीकार करेंगे, जैसे कि <p /> , और जैसा कि आप शायद उम्मीद करते हैं उन्हें प्रस्तुत करें। लेकिन एक लेखक के लिए, वह पृष्ठ वैध HTML5 नहीं होगा। (सबसे महत्वपूर्ण बात यह है कि आप इस प्रकार के अवैध वाक्यविन्यास का उपयोग करने से प्राप्त डोम पेड़ को गंभीर रूप से खराब कर सकते हैं; उदाहरण के लिए, स्वयं बंद <span /> टैग, गड़बड़ चीजों को बहुत अधिक करते हैं )।

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


स्व-समापन टैग HTML5 में मान्य हैं, लेकिन आवश्यक नहीं है।

<br> और <br /> दोनों ठीक हैं।





w3c-validation