2011-09-09 15 views
95

एचटीएमएल 5 में, क्या हमें अभी भी एक्सएचटीएमएल की तरह अंत स्लैश की आवश्यकता है?क्या हमें अभी भी HTML5 में एंड स्लैश की आवश्यकता है?

<img src="some_image.png" /> 

validator.w3.org शिकायत नहीं करता अगर मैंने इसे छोड़ दिया, चेतावनी भी नहीं। लेकिन कुछ ऑनलाइन दस्तावेज इंगित करते हैं कि अंत स्लैश अभी भी आईएमजी, लिंक, मेटा, बीआर आदि जैसे टैग के लिए आवश्यक है

+4

* फिर भी *? क्या HTML के किसी भी संस्करण को सभी टैग बंद करने की आवश्यकता है? – Gabe

+7

@Gabe एक्सएचटीएमएल 1.0 सख्त इसकी जरूरत है। मेरा मतलब है, वेब पेज आमतौर पर ठीक लोड करेंगे, लेकिन इसे अमान्य माना जाता है। – CaptSaltyJack

+2

हां, लेकिन एक्स एक्स सिर्फ इसलिए नहीं है क्योंकि एक्स शांत है, एचटीएमएल और एक्सएचटीएमएल के बीच काफी अंतर है। – delnan

उत्तर

71

img टैग शून्य तत्व हैं इसलिए उन्हें एक अंत टैग की आवश्यकता नहीं है।

शून्य तत्वों क्षेत्र, आधार, br, col, आदेश, एम्बेड, घंटा, img, इनपुट, keygen, लिंक, मेटा, परम, स्रोत, ट्रैक,

...

WBR

शून्य तत्वों में केवल एक प्रारंभ टैग है; अंत टैग शून्य तत्वों के लिए निर्दिष्ट नहीं किया जाना चाहिए।

W3C | WHATWG

कहा जा रहा है कि यह HTML5 में सख्त पार्सिंग नहीं है, इसलिए यह कोई बड़ा नुकसान नहीं करेगा।

+0

बस उत्सुक है, क्योंकि मेरा संपादक (Komodo) इंडेंट्स अगर मैं '' टाइप करता हूं और एंटर दबाता हूं। यह एचटीएमएल 5 मोड में पिछली स्लैश की अपेक्षा करता है और मैं यह सुनिश्चित करना चाहता था कि यह सही व्यवहार था। – CaptSaltyJack

+5

यह HTML है, एक्सएचटीएमएल नहीं, इसलिए इसकी आवश्यकता नहीं है। सौभाग्य से, पार्सर्स अभी भी एक्सएचटीएमएल-स्टाइल एंड-स्लेश को ठीक समझते हैं, इसलिए वहां इसे छोड़ने में कोई हानि नहीं है। किसी भी कारण से आवश्यक होने पर, आसानी से पीछे की ओर एक्सएचटीएमएल में परिवर्तित करना मतलब है। – Nightfirecat

+0

जो वास्तव में अजीब है। 'Schema.org' के पास imgs पर टैग क्यों हैं? यहां देखें: 'http: // schema.org/व्यक्ति' –

1

नहीं। एचटीएमएल ने एचटीएमएल 5 से पहले भी इसकी आवश्यकता नहीं है। यदि आप HTML सुविधाओं के साथ एक्सएचटीएमएल का उपयोग करने की योजना बना रहे हैं, तो हाँ, यह आवश्यक है।

+1

एक्सएचटीएमएल एचटीएमएल 5 जैसा नहीं है, सही? अगर मेरा डॉक्टरेट सिर्फ "एचटीएमएल" है, तो मुझे पिछली स्लैश की ज़रूरत नहीं है, सही? – CaptSaltyJack

+0

@CaptSaltyJack: सही। – Ryan

+0

@CaptSaltyJack - HTML5 सामान्य HTML और XHTML दोनों को शामिल करता है। एक्सएचटीएमएल को सभी तत्वों को बंद करने की आवश्यकता है, लेकिन ब्राउज़रों के लिए, कार्यप्रणाली का कोई प्रभाव नहीं पड़ता है। एक पूर्ण स्पष्टीकरण के लिए, http://stackoverflow.com/questions/2662508/html-4-html-5-xhtml-mime-types-the-definitive-resource/2664082#2664082 – Alohci

-13

सभी टैग बंद होना चाहिए (या तो स्वयं बंद होने से, या एक अलग समापन कार्रवाई द्वारा)। कुछ HTML4 में स्वयं बंद हो रहे हैं (जैसे <img> टैग) जबकि अन्य (जैसे <p> टैग) को एक अलग समापन टैग की आवश्यकता होती है। याद रखें कि सभी टैग बंद होना चाहिए या ब्राउज़र (यदि यह अनुपालन के लिए सख्त है) में त्रुटियां होंगी। इसका मतलब यह है कि यहां तक ​​कि टैग जो खोलने और बंद करने के बीच सामग्री नहीं रखते हैं, उन्हें एक तरफ या दूसरे में बंद किया जाना चाहिए। नीचे मैं <img> टैग की जांच करूंगा क्योंकि इसमें खोलने और बंद करने के बीच कोई सामग्री नहीं है।

एचटीएमएल 4 में यह स्वयं बंद है। इसका मतलब यह नहीं है कि यह बंद नहीं होता है, क्योंकि याद रखें कि सभी टैग बंद होना चाहिए। यह सिर्फ अपनी उपस्थिति से खुद को बंद कर देता है। तो एचटीएमएल 4 में <img> टैग बस है: <img>

एक्सएचटीएमएल में यह स्वयं बंद नहीं है। इसका मतलब है कि आप इस तरह से एक अलग बंद टैग प्रदान करनी चाहिए: <img></img>

एचटीएमएल 5 में तो कोई अंत में स्मार्ट हो गया और एक टैग है कि खोलने और बंद करने, एक बहुत ही सरल कार्य के बीच सामग्री नहीं है को बंद करने का निर्णय लिया। केवल एक टैग का प्रयोग करें, लेकिन साइन से अधिक से पहले स्लैश करें, जैसे: <img />

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

यहां ठीक से लिखित HTML कोड का एक उदाहरण है जिसमें सभी ब्राउज़रों के साथ उच्च स्तर की संगतता है।

<!DOCTYPE html> 
<html> 
<head> 
<title>test website</title> 
</head> 
<body> 
<p>This is a test.</p> 
<img src="testpic.jpg" /> 
</body> 
</html> 
+5

क्या आप उद्धरण शामिल कर सकते हैं: मुझे पूरा यकीन है कि यह जानकारी गलत है, कार्यप्रणाली के बावजूद कभी मान्य नहीं है। – CherryFlavourPez

+2

@CherryFlavourPez यह जानकारी बहुत गलत है, और इसे अनदेखा किया जाना चाहिए। हालांकि, एक्सएचएमटीएल में स्थिति को फिर से स्पष्ट करने के लिए ' 'को स्पष्ट करने के लिए। हां, यह वैध एक्सएचएमटीएल है, लेकिन ब्राउज़र को इसे सही तरीके से पार्स करने के लिए, इसे XML MIME प्रकार के रूप में भेजा जाना चाहिए: एप्लिकेशन/xhtml + xml। http://www.w3.org/International/articles/serving-xhtml/ यदि आप सही DOCTYPE सेट करते हैं, भले ही आपका वेब सर्वर HTML पृष्ठों को MIME के ​​रूप में भेजता है: टेक्स्ट/एचटीएमएल, क्लाइंट ब्राउज़र HTML पार्सर का उपयोग करेंगे, और हो सकता है उलझन में।इसलिए, एक्सएचटीएमएल के लिए ' 'की अनुशंसा की जाती है। ध्यान दें कि यह जवाब क्या कहता है इसके विपरीत है। – ToolmakerSteve

63

एचटीएमएल 5 में, क्लोज़िंग स्लेश वैकल्पिक शून्य तत्वों पर है इस तरह के img (मैं इस द्वारा जोड़ा जा रहा है क्योंकि वर्तमान में स्वीकार जवाब केवल कहते हैं: "अंत टैग शून्य तत्वों के लिए निर्दिष्ट नहीं किया जाना चाहिए", और करता है शून्य तत्वों में बंद slashes को संबोधित नहीं)।

http://www.w3.org/TR/html5/syntax.html#start-tags से हवाला देते हुए (संख्या 6):

तो फिर, अगर तत्व शून्य तत्वों में से एक है, या अगर तत्व एक विदेशी तत्व है, तो एक भी "/" (यू हो सकता है + 002 एफ) चरित्र। इस चरित्र का शून्य तत्वों पर कोई प्रभाव नहीं पड़ता है, लेकिन विदेशी तत्वों पर यह स्टार्ट टैग को स्वयं बंद करने के रूप में चिह्नित करता है।

0

W3C से:

शून्य तत्व: क्षेत्र, आधार, br, col, एम्बेड, घंटा, img, इनपुट, keygen, लिंक, मेटा, परम, स्रोत, ट्रैक,

WBR

" शून्य तत्वों में केवल एक प्रारंभ टैग होता है; अंत टैग को शून्य तत्वों के लिए निर्दिष्ट नहीं किया जाना चाहिए। "

http://www.w3.org/TR/html5/syntax.html#void-elements

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