เรายังต้องการเครื่องหมายทับใน HTML5 หรือไม่?


122

ใน HTML5 เรายังต้องการเครื่องหมายทับเหมือนใน XHTML หรือไม่?

<img src="some_image.png" />

validator.w3.org ไม่ได้บ่นถ้าฉันทำหล่นไม่มีแม้แต่คำเตือน แต่เอกสารออนไลน์บางฉบับดูเหมือนจะระบุว่ายังต้องใช้เครื่องหมายทับสำหรับแท็กเช่น img, link, meta, br เป็นต้น


6
ยัง ? HTML เวอร์ชันใดต้องการปิดแท็กทั้งหมดหรือไม่
Gabe

9
@Gabe XHTML 1.0 Strict ต้องการมัน ฉันหมายความว่าโดยปกติหน้าเว็บจะโหลดได้ดี แต่ถือว่าไม่ถูกต้อง
CaptSaltyJack

3
ใช่ แต่ X นั้นไม่ได้มีเพียงแค่นั้นเพราะ X นั้นยอดเยี่ยมมีช่องว่างระหว่าง HTML และ XHTML ค่อนข้างมาก

1
@Capt: คุณถูกต้อง แต่ที่ควรเท่านั้นจะมีปัญหาถ้าประเภทเอกสารของคุณแสดงให้เห็น XHTML
Gabe

คำตอบ:


80

img แท็กเป็น Void Elements ดังนั้นจึงไม่จำเป็นต้องมีแท็กปิดท้าย

พื้นที่องค์ประกอบว่าง, ฐาน, br, col, คำสั่ง, ฝัง, hr, img, input, keygen, link, meta, param, source, track, <wbr

...

องค์ประกอบโมฆะมีเพียงแท็กเริ่มต้น ไม่ต้องระบุแท็กปิดท้ายสำหรับองค์ประกอบโมฆะ

W3C | WHATWG

ที่ถูกกล่าวว่ามันไม่ได้มีการแยกวิเคราะห์อย่างเข้มงวดใน HTML5 ดังนั้นจึงไม่ก่อให้เกิดอันตรายใด ๆ


แค่อยากรู้เพราะตัวแก้ไขของฉัน (Komodo) เยื้องถ้าฉันพิมพ์ '<img src = "x">' แล้วกด Enter คาดว่าจะมีเครื่องหมายทับในโหมด HTML5 และฉันต้องการให้แน่ใจว่านี่เป็นพฤติกรรมที่ถูกต้อง
CaptSaltyJack

5
นี่คือ HTML ไม่ใช่ XHTML ดังนั้นจึงไม่จำเป็นต้องใช้ โชคดีที่ผู้แยกวิเคราะห์ยังคงเข้าใจเครื่องหมายทับปลายสไตล์ XHTML ได้ดีดังนั้นจึงไม่มีอันตรายใด ๆ ที่จะทิ้งไว้ที่นั่น หมายถึงการแปลงย้อนกลับเป็น XHTML ได้ง่ายขึ้นหากจำเป็นไม่ว่าด้วยเหตุผลใดก็ตาม
Nightfirecat

4
@FreeRadical: เครื่องหมายทับเป็นทางเลือกสำหรับองค์ประกอบที่เป็นโมฆะ แต่แท็กปิดท้ายจะไม่ถูกต้อง
Ry-

26
แม้ว่าคำถามจะเกี่ยวกับเครื่องหมายทับ (เช่น<br/) คำตอบนี้อ้างถึงแท็กปิดท้ายเท่านั้น(เช่น<br></br>)
Free Radical

12
@FreeRadical ถูกต้อง คำตอบนี้ไม่ถูกต้องในทางเทคนิคเพราะมันสร้างความสับสนให้an ending slashกับan end tagและทำให้ misunderstands ย่อหน้าข้อมูลจำเพาะว่ามันคำพูด สิ่งนี้นำไปสู่ความสับสนของ @ YannisDran @minitech ระบุสิ่งที่เป็นจริงอย่างถูกต้อง
ToolmakerSteve

94

ใน HTML 5 เครื่องหมายทับปิดเป็นทางเลือกสำหรับองค์ประกอบที่เป็นโมฆะเช่นimg (ฉันกำลังเพิ่มสิ่งนี้เนื่องจากคำตอบที่ยอมรับในปัจจุบันมีเพียงระบุว่า "ต้องไม่ระบุแท็กสิ้นสุดสำหรับองค์ประกอบที่เป็นโมฆะ" และไม่ได้ระบุเครื่องหมายทับปิดในองค์ประกอบที่เป็นโมฆะ)

อ้างจากhttp://www.w3.org/TR/html5/syntax.html#start-tags (หมายเลข 6):

จากนั้นถ้าองค์ประกอบนั้นเป็นหนึ่งในองค์ประกอบโมฆะหรือถ้าองค์ประกอบนั้นเป็นองค์ประกอบแปลกปลอมก็อาจมีอักขระ "/" (U + 002F) ตัวเดียว อักขระนี้ไม่มีผลกับองค์ประกอบโมฆะ แต่สำหรับองค์ประกอบแปลกปลอมจะทำเครื่องหมายแท็กเริ่มต้นว่าเป็นการปิดตัวเอง


นี่ไม่ใช่ HTML5 จริงๆแล้วใน HTML เวอร์ชันก่อนหน้านี้<br/>หรือ<img ... />เป็นข้อผิดพลาด
jj

@jj ฉันอ้างถึงเอกสาร HTML5 ดังนั้นฉันไม่เข้าใจว่าทำไมไม่คิดว่ามันไม่ใช่ HTML5 และแน่นอนในเวอร์ชันอื่น ๆ การเฉือนดังกล่าวเป็นข้อผิดพลาด
Free Radical

แน่นอนฉันตั้งใจจะบอกว่า "เรายังต้องการเครื่องหมายทับใน HTML5 หรือไม่" เป็นคำถามที่ไม่ถูกต้อง ฉันอาจจะเขียนคำตอบเต็มรูปแบบพร้อมกับลิงก์เชิงเขาในบางวัน IIRC เป็นการตัดสินใจที่ยากลำบากสำหรับ Ian Hickson (โปรแกรมแก้ไข HTML) ที่อนุญาตให้ใช้เครื่องหมายทับใน HTML5
jj

2

Nope HTML ไม่เคยจำเป็นต้องใช้มาก่อน HTML5 หากคุณวางแผนที่จะใช้ XHTML กับฟีเจอร์ HTML ใช่มันเป็นสิ่งที่จำเป็น


1
XHTML ไม่เหมือนกับ HTML5 ใช่ไหม ถ้า DOCTYPE ของฉันเป็นแค่ "html" ฉันไม่จำเป็นต้องใช้เครื่องหมายทับต่อท้ายใช่ไหม
CaptSaltyJack

@CaptSaltyJack: ถูกต้อง
Ry-

1
@CaptSaltyJack - HTML5 ครอบคลุมทั้ง HTML ธรรมดาและ XHTML XHTML กำหนดให้ปิดองค์ประกอบทั้งหมด แต่สำหรับเบราว์เซอร์ประเภทหลักจะไม่มีผลกระทบต่อสถานการณ์ สำหรับคำอธิบายที่สมบูรณ์ยิ่งขึ้นโปรดดูstackoverflow.com/questions/2662508/…
Alohci


1

เครื่องหมายทับสำหรับองค์ประกอบโมฆะเป็นทางเลือก

ทั้งสองเป็น HTML5 ที่ถูกต้อง:

<img src="some_image.png" />

และ

<img src="some_image.png">

องค์ประกอบโมฆะคือ:

  • area
  • base
  • br
  • col
  • embed
  • hr
  • img 👍
  • input
  • link
  • meta
  • param
  • source
  • track
  • wbr

นอกจากที่น่าสนใจ:

องค์ประกอบโมฆะต้องไม่มีเนื้อหาใด ๆ (เนื่องจากไม่มีแท็กปิดท้ายจึงไม่สามารถใส่เนื้อหาระหว่างแท็กเริ่มต้นและแท็กปิดท้ายได้)

รายละเอียดเพิ่มเติมที่: https://html.spec.whatwg.org/multipage/syntax.html#elements-2


ดูคำถาม SO ที่นี่:
แท็กปิดตัวเอง (องค์ประกอบโมฆะ) ใน HTML5

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