คุณต้องปิดเมตาและลิงค์แท็กใน HTML หรือไม่?


133

ฉันเพิ่งอ่าน HTML ของใครบางคนที่ไม่เคยปิดเมตาและแท็กลิงก์ในส่วนหัวของ HTML รหัสทำงานได้ดี กำลังปิดแท็กเหล่านี้หรือไม่

ฉันคิดว่ามันจะผิดรูปแบบหากไม่ได้ปิดแท็ก

คำตอบ:


167

แท็กจะต้องปิดโดยสัญลักษณ์แท็กปิด>(ถ้าเราไม่สนใจกฎ SGML บางอย่างที่นำไปใช้ในนามไม่ใช่ XHTML HTML แต่ไม่เคยถูกนำมาใช้ในเบราว์เซอร์)

สิ่งที่คุณต้องการถามคือต้องปิดองค์ประกอบด้วยแท็กปิดหรือไม่ คำตอบคือ HTML ที่ไม่ใช่ XHTML (รวมถึง HTML5 ในการทำให้เป็นอนุกรม HTML) ไม่จำเป็นต้องใช้แท็กปิดท้ายหรืออนุญาตสำหรับmetaและlinkองค์ประกอบ อย่างไรก็ตามในทางปฏิบัติเบราว์เซอร์จะเพิกเฉยต่อแท็กปิดท้ายที่ชัดเจนสำหรับพวกเขาเช่นเดียวกับลัทธิขนส่งสินค้า/ก่อนหน้า>นี้หากคุณใช้ และ HTML5 ทำให้การอนุญาตนี้เป็นกฎโดยการอนุญาตอย่างเป็นทางการ/ในการทำให้เป็นอนุกรม HTML ด้วย

ใน XHTML กฎ XML จะใช้ดังนั้นทุกองค์ประกอบโดยไม่มีข้อยกเว้นต้องมีทั้งแท็กเริ่มต้นและแท็กปิดท้าย แต่อาจใช้แท็กเดียวกันสำหรับทั้งสองบทบาทหากเนื้อหาองค์ประกอบว่างเปล่าเช่น<meta name="foo" content="bar"/>ย่อมา<meta name="foo" content="bar"></meta>จาก หากคุณละเมิดสิ่งนี้เมื่อส่งเอกสารที่มีประเภทเนื้อหา XML (XHTML) ไปยังเบราว์เซอร์ที่สอดคล้องกันเอกสารของคุณจะไม่แสดงเลย ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นแทน

เมื่อใช้เซิร์ฟเวอร์ XHTML ที่มีประเภทเนื้อหา HTML ( Content-Type: text/html) เนื่องจากเอกสาร XHTML มักจะอยู่บนเว็บเบราว์เซอร์จะใช้กฎ HTML ที่ไม่ใช่ XHTML

สรุป:

  • โดยปกติใช้<meta ...>กับ no/
  • หากคุณใช้ XHTML ในบริบทที่ใช้การแยกวิเคราะห์ XHTML จริงให้เล่นตามกฎ XML (และตรวจสอบให้แน่ใจว่าคุณรู้จัก)
  • ถ้าเจ้านายของคุณบอกให้คุณเขียน<meta ... />ให้ทำเช่นนั้น ไม่มีประโยชน์ แต่ไม่ก่อให้เกิดอันตรายใด ๆ (ยกเว้นหากคุณพยายามตรวจสอบความถูกต้องเช่นเทียบกับประเภท HTML 4.01)

3
การใช้ /> ทำให้เกิดปัญหาที่บอทของ Google ไม่รู้จักเมตาโรบ็อตแท็ก แปลก!!!
DevZer0

13
ฉันพบว่าคำว่า“ ลัทธิขนส่งสินค้า” ไม่เหมาะสมในบริบทนี้ บางคนปิดองค์ประกอบเหล่านั้นเพียงเพราะพวกเขาอดกลั้นที่ XHTML ไม่เหนือกว่า
Marcus

6
เตือนภัยอวดรู้! "ลัทธิการขนส่งสินค้า" ไม่ได้ใส่ยัติภังค์ในการปฏิบัติตามปกติ แต่เฉพาะเมื่อใช้วลีทั้งหมดเป็นคำคุณศัพท์แทนอย่างอื่น (เช่น "cargo-cult programming", "cargo-cult /before >") แค่คิดว่าฉันจะชี้แจงเพื่อไม่ให้อินเทอร์เน็ตยุ่งเหยิงด้วยความสับสนมากขึ้น </pedant_alert>:)
แอรอน Wallentine

1
@ DevZer0 - คุณแน่ใจหรือว่าเครื่องหมายทับเป็นสาเหตุ? ฉันคาดหวังว่า Google จะยืดหยุ่นกับสิ่งต่างๆเช่นนั้น
Simon East

3
การทำให้ HTML ของคุณสอดคล้องกับกฎ XHTML ไม่ใช่เหตุผลที่จะรวม / before>?
Kyle Delaney

28

ขึ้นอยู่กับประเภทหลัก HTML5 ไม่ต้องการการปิด XHTML ทำ

ใน HTML5 สิ่งที่เรียกว่าองค์ประกอบโมฆะ (องค์ประกอบที่ไม่มีเนื้อหา) ไม่จำเป็นต้องมีการปิดเนื่องจากเป็นการปิดตัวเอง แต่ยังใช้ได้ถ้าคุณปิด ..

อ่านเพิ่มเติมได้ที่นี่: void-elements


4
HTML5 มีการทำให้เป็นอนุกรมสองแบบและหนึ่งในนั้น (การทำให้เป็นอนุกรม XHTML) ทำให้ต้องมีแท็กปิดท้าย
Jukka K. Korpela
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.