दिलचस्प पोस्ट
जावा में संदर्भ द्वारा एक स्ट्रिंग पासिंग? क्षैतिज UITableView वास्तव में एक प्रयास में क्या होता है {वापसी x; } अंत में {x = शून्य; } बयान? क्या बेहतर "int 0x80" या "syscall" है? सिद्धांत बनाने के लिए प्रत्येक इकाई के लिए एक चेकबॉक्स वाला एक फ़ॉर्म बनाएं सी # के डेटटाइम के समतुल्य.अब जावा में? एंड्रॉइड के साथ एक मनमाना टोन बजाना VB.NET में लिखे गए Excel के लिए COM सर्वर कैसे प्राप्त करें और स्वचालन सर्वर सूची में पंजीकृत हो? JQGrid में, क्या स्तंभ फ़ॉर्मेटर के अलावा समूहीकृत कक्ष को समूहीकृत करने के लिए भिन्न फॉर्मेटर का उपयोग करना संभव है? XElement या LINQ के साथ XPath का उपयोग कैसे करें? WPF: गतिशील रूप से निर्मित WPF विंडो में गतिशील रूप से नियंत्रण कैसे जोड़ें django – एक गणना की गई फ़ील्ड से क्वेरीस ऑर्डर करने वाला ओपनजीएल 2 बनावट आंतरिक प्रारूप GL_RGB8I, जीएल_आरजीबी 32 यूआई, आदि अस्थायी मतलब क्या है? बिना लोड किए गए लोड प्लस के यूआईवीयूआईयूआईयूआईयूआई नियंत्रक के साथ भार-दृश्य और दृश्यडायडलोड का उचित उपयोग

क्या हेड, बॉडी और एचटीएमएल टैग लिखना आवश्यक है?

क्या <html> , <head> और <body> टैग लिखना आवश्यक है?

उदाहरण के लिए, मैं ऐसा पृष्ठ बना सकता हूं:

 <!DOCTYPE html> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Page Title</title> <link rel="stylesheet" type="text/css" href="css/reset.css"> <script src="js/head_script.js"></script><!-- this script will be in head //--> <div>Some html</div> <!-- here body starts //--> <script src="js/body_script.js"></script> 

और फायरबग सिर और शरीर को सही ढंग से अलग करता है: यहां छवि विवरण दर्ज करें

डब्ल्यू3 सी वैधीकरण का कहना है कि यह मान्य है।

लेकिन मैं शायद ही कभी इस अभ्यास को वेब पर देखता हूं।

क्या ये टैग लिखने के लिए कोई कारण है?

Solutions Collecting From Web of "क्या हेड, बॉडी और एचटीएमएल टैग लिखना आवश्यक है?"

html , head , और body टैग्स को हटाना निश्चित रूप से एचटीएमएल स्पेस द्वारा अनुमत है अंतर्निहित कारण यह है कि ब्राउज़रों ने हमेशा मौजूदा वेब पेजों के साथ संगत रखा है, और HTML के प्रारंभिक संस्करण उन तत्वों को परिभाषित नहीं करते हैं जब एचटीएमएल 2.0 पहले किया था, यह एक तरह से किया गया था कि टैग लापता होने पर अनुमान लगाए जाएंगे।

मैं प्रायः जब प्रोटोटाइप टैग को छोड़ना और विशेष रूप से टेस्ट के मामलों को लिखने के लिए सुविधाजनक बनाता है क्योंकि यह प्रश्न में परीक्षण पर मार्क-अप केंद्रित करने में मदद करता है। अनुमान प्रक्रिया आपको तत्वों को बिल्कुल उसी तरीके से बना सकती है जो आप Firebug में देखते हैं, और ब्राउज़र ऐसा करने में काफी सुसंगत हैं।

परंतु…

IE में इस क्षेत्र में कम से कम एक ज्ञात बग है यहां तक ​​कि IE9 इस दर्शाती है मान लीजिए कि मार्कअप यह है:

 <!DOCTYPE html> <title>Test case</title> <form action='#'> <input name="var1"> </form> 

आपको (और अन्य ब्राउज़रों में करना चाहिए) एक DOM प्राप्त करना चाहिए जो इस तरह दिखता है:

 HTML HEAD TITLE BODY FORM action="#" INPUT name="var1" 

लेकिन आईई में आपको यह मिलता है:

 HTML HEAD TITLE FORM action="#" BODY INPUT name="var1" BODY 

इसे अपने लिए देखें

यह बग किसी भी पाठ सामग्री और किसी भी body शुरू टैग से पहले form शुरू टैग तक ही सीमित है।

HTML के लिए Google शैली मार्गदर्शिका सभी वैकल्पिक टैगों को छोड़ने की अनुशंसा करती है।
इसमें <html> , <head> , <body> , <p> और <li>

https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags

फ़ाइल आकार ऑप्टिमाइज़ेशन और स्कैनेबिलिटी उद्देश्यों के लिए, वैकल्पिक टैग को छोड़ने पर विचार करें। एचटीएमएल 5 विनिर्देश परिभाषित करता है कि किस टैग को छोड़ा जा सकता है।

(इस दृष्टिकोण को एक विस्तृत दिशानिर्देश के रूप में स्थापित करने की अनुग्रह अवधि की आवश्यकता हो सकती है क्योंकि यह वेब डेवलपर्स को आमतौर पर सिखाया जाता है।

 <!-- Not recommended --> <!DOCTYPE html> <html> <head> <title>Spending money, spending bytes</title> </head> <body> <p>Sic.</p> </body> </html> <!-- Recommended --> <!DOCTYPE html> <title>Saving money, saving bytes</title> <p>Qed. 

एचटीएमएल 5 के बारे में लिज़ा डेली के नोट के विपरीत, यह विशिष्ट वास्तव में काफी विशिष्ट है कि किस टैग को छोड़ा जा सकता है, और जब (और नियम HTML 4.01 से थोड़े अलग हैं, ज्यादातर स्पष्ट करने के लिए जहां टिप्पणियों और व्हाइटपस जैसे अस्पष्ट तत्व हैं)

संबंधित संदर्भ http://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#optional-tags , और यह कहते हैं:

  • यदि html तत्व के अंदर पहली चीज टिप्पणी नहीं है तो एक html तत्व का प्रारंभ टैग छोड़ा जा सकता है।

  • एक HTML तत्व का अंत टैग छोड़ा जा सकता है यदि html तत्व तुरंत एक टिप्पणी के बाद नहीं है

  • यदि तत्व खाली है, या मुख्य तत्व के भीतर पहली चीज एक तत्व है, तो सिर तत्व का प्रारंभ टैग छोड़ा जा सकता है

  • सिर तत्व का अंत टैग छोड़ा जा सकता है यदि मुख्य तत्व तुरंत एक स्पेस वर्ण या एक टिप्पणी के बाद नहीं किया गया है।

  • यदि तत्व रिक्त है, तो शरीर के तत्व का प्रारंभ टैग छोड़ा जा सकता है, या यदि शरीर तत्व के अंदर पहली चीज एक स्पेस वर्ण या टिप्पणी नहीं है, सिवाय इसके कि शरीर तत्व के अंदर पहली चीज स्क्रिप्ट या शैली तत्व है।

  • एक शरीर तत्व का अंत टैग छोड़ा जा सकता है अगर शरीर तत्व तुरंत एक टिप्पणी के बाद नहीं किया जाता है

तो आपका उदाहरण मान्य एचटीएमएल 5 है, और इस तरह पार्स किया जाएगा, उनके निहित पदों में html, सिर और शरीर टैग के साथ:

 <!DOCTYPE html><HTML><HEAD> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Page Title</title> <link rel="stylesheet" type="text/css" href="css/reset.css"> <script src="js/head_script.js"></script></HEAD><BODY><!-- this script will be in head //--> <div>Some html</div> <!-- here body starts //--> <script src="js/body_script.js"></script></BODY></HTML> 

ध्यान दें कि टिप्पणी "यह स्क्रिप्ट सिर में होगी" वास्तव में शरीर के हिस्से के रूप में पार्स किया जाता है, हालांकि स्क्रिप्ट ही सिर का हिस्सा है। युक्ति के अनुसार, यदि आप चाहते हैं कि बिल्कुल अलग हो, तो </HEAD> और <BODY> टैग को छोड़ा नहीं जा सकता है। (हालांकि संबंधित <HEAD> और </BODY> टैग अभी भी हो सकते हैं)

उन्हें HTML4 में छोड़ देना मान्य है:

 7.3 The HTML element start tag: optional, End tag: optional 7.4.1 The HEAD element start tag: optional, End tag: optional 

http://www.w3.org/TR/html401/struct/global.html

एचटीएमएल 5 में, "आवश्यक" या "वैकल्पिक" तत्व बिल्कुल नहीं हैं, क्योंकि एचटीएमएल 5 वाक्यविन्यास अधिक ढीली परिभाषित है। उदाहरण के लिए, title :

शीर्षक तत्व अधिकांश स्थितियों में एक आवश्यक बच्चे है, लेकिन जब एक उच्च-स्तरीय प्रोटोकॉल शीर्षक जानकारी प्रदान करता है, उदाहरण के लिए ई-मेल की विषय रेखा में जब HTML को ई-मेल संलेखन प्रारूप के रूप में उपयोग किया जाता है, तो शीर्षक तत्व को छोड़ा जा सकता है ।

http://www.w3.org/TR/html5/semantics.html#the-title-element-0

यह उन्हें सही XHTML5 में छोड़ने के लिए मान्य नहीं है, हालांकि यह लगभग कभी भी प्रयोग नहीं किया गया है (बनाम एक्सएचटीएमएल-अभिनय जैसी एचटीएमएल 5)।

हालांकि, व्यावहारिक दृष्टिकोण से, आप अक्सर HTML और CSS प्रदान करने में पूर्वानुमान के लिए ब्राउज़रों को "मानक मोड" में चलाना चाहते हैं। एक DOCTYPE और एक अधिक संरचित एचटीएमएल पेड़ प्रदान करने से अधिक अनुमान लगाए गए क्रॉस-ब्राउज़र परिणाम की गारंटी होगी।

यह सच है कि HTML चश्मा कुछ निश्चित मामलों में कुछ टैग को छोड़ने की अनुमति देते हैं, लेकिन आम तौर पर ऐसा करना मूर्ख नहीं है।

इसके दो प्रभाव हैं – यह युक्ति को और अधिक जटिल बना देता है, जो बदले में ब्राउज़र लेखकों को सही कार्यान्वयन लिखने के लिए कठिन बना देता है (जैसा कि IE द्वारा यह गलत हो रहा है)।

यह युक्ति उच्च के इन भागों में ब्राउज़र त्रुटियों की संभावना बनाता है एक वेबसाइट के लेखक के रूप में आप इन टैगों को शामिल करके इस मुद्दे से बच सकते हैं – जबकि जब यह युक्ति नहीं कहता कि आपको ऐसा करना है, तो ऐसा करने से चीजें गलत होने की संभावना कम हो जाती है, जो अच्छा इंजीनियरिंग अभ्यास है।

क्या अधिक है, नवीनतम एचटीएमएल 5.1 डब्ल्यूजी स्पेक वर्तमान में कहती है (ध्यान रखें कि यह काम प्रगति पर है और फिर भी बदल सकता है)।

यदि तत्व खाली है, तो एक शरीर तत्व का प्रारंभ टैग छोड़ा जा सकता है, या यदि शरीर तत्व के अंदर पहली चीज एक स्पेस वर्ण या टिप्पणी नहीं है, सिवाय इसके कि शरीर तत्व में पहली चीज मेटा, लिंक, स्क्रिप्ट, शैली है , या टेम्पलेट तत्व

http://www.w3.org/html/wg/drafts/html/master/sections.html#the-body-element

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

तो यह

 <html> <h1>hello</h1> <script ... > ... 

स्क्रिप्ट तत्व शरीर के तत्व का एक बच्चा होने के परिणामस्वरूप, लेकिन यह

 <html> <script ... > <h1>hello</h1> 

सिर तत्व का एक बच्चा होने वाला स्क्रिप्ट टैग का परिणाम होगा

आप ऐसा करके स्पष्ट कर सकते हैं

 <html> <body> <script ... > <h1>hello</h1> 

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

एक सामान्य नियम के रूप में, चीजों के बारे में स्पष्ट होने से, चीजों को व्याख्या के लिए खोलने से हमेशा बेहतर होता है इस संबंध में एक्सएचटीएमएल बेहतर है क्योंकि यह आपको अपने कोड में अपने तत्व संरचना के बारे में स्पष्ट रूप से स्पष्ट करता है, जो इसे सरल बनाता है, और इसलिए गलत व्याख्या के लिए कम प्रवण होता है।

तो हां, आप उन्हें छोड़ सकते हैं और तकनीकी रूप से मान्य हो सकते हैं, लेकिन ऐसा करना आम तौर पर मूर्ख नहीं है।

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

Html तत्व प्रत्येक html पृष्ठ का मूल तत्व है। यदि आप अन्य सभी तत्वों के विवरण को देखते हैं तो यह कहता है कि एक तत्व का उपयोग कैसे किया जा सकता है (और लगभग सभी तत्वों को सिर या शरीर की आवश्यकता होती है)