จำเป็นต้องใช้ Doctype สำหรับเอกสาร HTML5 หรือไม่


12

เมื่อเร็ว ๆ นี้ฉันได้สัมภาษณ์งานและหนึ่งในคำถามคือ "จำเป็นต้องมีประเภทเอกสารสำหรับเอกสาร HTML 5 หรือไม่" ฉันตอบว่า "ไม่" แต่มีความรู้สึกว่าฉันผิด จากw3ดูเหมือนว่าจำเป็นจริงๆ แต่ถ้าฉันพิมพ์ HTML อย่างง่าย

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

บันทึกเป็น HTML และลองเปิดใน Chrome ซึ่งจะทำงานได้ดีอย่างสมบูรณ์พร้อมอินพุตสีใหม่ (ปิดใช้งาน) อินพุตนั้นคือ HTML5 เช่นเดียวกับแอตทริบิวต์

ดังนั้นคำถามคือ - ฉันต้องระบุประเภทหรือไม่? คำตอบที่ถูกต้องสำหรับการสัมภาษณ์คืออะไร?


1
ผมคิดว่าคุณสามารถยืนยันว่าไม่มีการDoctypeองค์ประกอบมันไม่ได้เป็นเอกสาร HTML5
MetaFight

คุณสามารถพิมพ์hello worldตัวแก้ไขข้อความบันทึกเป็น HTML และมันจะแสดงผลใน Chrome ปรากฎ Chrome (และเบราว์เซอร์อื่น ๆ อีกมากมาย) ใส่สิ่งต่าง ๆ ให้กับคุณแม้ว่าจะเป็น "จำเป็น"
บุกรุกใน

คำตอบ:


14

คำตอบที่ถูกต้องจะเป็น "มันขึ้นอยู่กับ"

DOCTYPE เป็นทางเลือกสำหรับเอกสาร HTML5 ในรูปแบบ XHTML (เช่นเอกสาร XHTML5):

เอกสาร XML อาจมี DOCTYPE หากต้องการ แต่ไม่จำเป็นต้องเป็นไปตามข้อกำหนดนี้

DOCTYPE จำเป็นสำหรับเอกสาร HTML5 ในรูปแบบ HTML :

เอกสารจะต้องประกอบด้วยส่วนต่าง ๆ ดังต่อไปนี้ตามลำดับที่กำหนด:

[ ... ]

3. DOCTYPE

ข้อยกเว้น


1
นี่คือคำตอบที่สมบูรณ์หาก "จำเป็น" ถูกตีความว่าเป็น "ข้อกำหนดตามข้อกำหนด" มันอาจตีความได้ว่าเป็นการอ้างถึงผลกระทบที่เกิดขึ้นจริง ในกรณีดังกล่าวคำตอบก็คือจำเป็นต้องใช้สตริงรูปแบบคำสั่งในไวยากรณ์ HTML เพื่อกำหนดให้เบราว์เซอร์เป็น "โหมดมาตรฐาน"
Jukka K. Korpela

ฉันต้องการคำตอบนี้ดีกว่าถ้าคุณอธิบายเพิ่มเติมว่าเมื่อใดที่เอกสารเป็น html vs xhtml สิ่งนี้หมายความว่าอะไรกับเบราว์เซอร์ - พวกเขาตัดสินใจได้อย่างไรว่าจะประเมินด้วยไวยากรณ์ใด
temporary_user_name

7

ฉันก็จะมีคำตอบ "ไม่" (ผิดเหมือนที่เกิดขึ้น)

อย่างไรก็ตามhttp://www.w3.org/TR/html5/syntax.html#the-doctype พูดว่า:

8.1.1 DOCTYPE

DOCTYPE เป็นการเริ่มนำที่จำเป็น

DOCTYPE จำเป็นสำหรับเหตุผลดั้งเดิม เมื่อละเว้นเบราว์เซอร์มักจะใช้โหมดการแสดงผลอื่นที่ไม่เข้ากันกับข้อกำหนดบางอย่าง การรวม DOCTYPE ไว้ในเอกสารทำให้มั่นใจได้ว่าเบราว์เซอร์พยายามอย่างเต็มที่ในการปฏิบัติตามข้อกำหนดที่เกี่ยวข้อง

BTW, GIYF


1
ส่วนที่ยกมาใช้กับไวยากรณ์ HTML เท่านั้น
Jukka K. Korpela

และชื่อคำถามคือ "จำเป็นต้องมี Doctype สำหรับเอกสาร HTML5" (QED)
Mawg พูดว่าคืนสถานะโมนิก้า

1
ข้อกำหนด HTML5 อย่างชัดเจนและเห็นได้ชัดบอกว่ามันกำหนดสองไวยากรณ์สำหรับ HTML5 หนึ่งขึ้นอยู่กับ HTML ต้นฉบับและหนึ่งสอดคล้องกับ XML อย่างเต็มที่ สิ่งที่คุณอ้างอิงไม่ตอบคำถามเนื่องจากมันใช้กับหนึ่งในไวยากรณ์เท่านั้น
Jukka K. Korpela

อา! ในที่สุดฉันก็เข้าใจ ขอบคุณมากสำหรับคำชี้แจง
Mawg พูดว่าคืนสถานะโมนิก้า

2

เมื่อคุณต้องการเขียนเอกสาร HTML5 ที่เป็นไปตามมาตรฐาน w3c <!DOCTYPE html>จำเป็นต้องมี

แต่ในทางปฏิบัติคุณไม่จำเป็นต้องมีประเภทเอกสารเสมอเพราะเว็บเบราว์เซอร์ทั่วไปจะแสดงเอกสารของคุณโดยไม่คำนึงถึง อย่างไรก็ตามเบราว์เซอร์บางตัวจะใช้โหมดดั้งเดิมซึ่งฟีเจอร์บางอย่างไม่ถูกต้องตีความอย่างถูกต้องและเบราว์เซอร์เวอร์ชันก่อนหน้าจะจัดการกับมันแทน (ส่วนใหญ่เกี่ยวข้องกับเลย์เอาต์)

ซึ่งคำตอบที่ถูกต้องสำหรับการสัมภาษณ์ครั้งนี้ ? ขึ้นอยู่กับความคิดของคนที่สัมภาษณ์คุณ ในการสัมภาษณ์งานมันไม่สำคัญว่าคุณจะถูกหรือผิด มันสำคัญแค่ความประทับใจที่คุณทำกับผู้สัมภาษณ์


คำถามที่น่าสนใจสำหรับฉันคือ DOCTYPE HTML5 จำเป็นสำหรับการฝึกซ้อมในปี 2020 หรือไม่? เบราว์เซอร์ปัจจุบัน (FF, Chrome, Edge) ทำอะไรได้บ้างหากฉันไม่ทำอะไรเลยและยังทำให้โค้ด HTML-5 เป็นไปตามมาตรฐาน?
Panu Logic
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.