เมื่อเขียนรูปแบบ HTML5 วิธีการที่ถูกต้องคืออะไร?
<!DOCTYPE html>
หรือ
<!doctype html>
<!doctype html>
เมื่อเขียนรูปแบบ HTML5 วิธีการที่ถูกต้องคืออะไร?
<!DOCTYPE html>
หรือ
<!doctype html>
<!doctype html>
คำตอบ:
ใน HTML DOCTYPE ไม่คำนึงถึงขนาดตัวพิมพ์ DOCTYPE ต่อไปนี้ถูกต้องทั้งหมด:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
ใน XML การทำให้เป็นอนุกรม (เช่น XHTML) ไม่จำเป็นต้องใช้ DOCTYPE แต่ถ้าคุณใช้DOCTYPE
ควรเป็นตัวพิมพ์ใหญ่:
<!DOCTYPE html>
ดูการทำให้เป็นอันดับ XML ของ HTML5 หรือที่เรียกว่า 'XHTML5' :
โปรดทราบว่าหากคุณไม่พิมพ์ใหญ่
DOCTYPE
ในเอกสาร XHTML ตัวแยกวิเคราะห์ XML จะส่งคืนข้อผิดพลาดทางไวยากรณ์ส่วนที่สองสามารถเขียนเป็นตัวพิมพ์เล็ก (
html
) ตัวพิมพ์ใหญ่ (HTML
) หรือแม้แต่ตัวพิมพ์เล็ก(hTmL
) - มันจะยังคงทำงานได้ อย่างไรก็ตามเพื่อให้เป็นไปตามคำแนะนำของมาร์กอัป Polyglot สำหรับเอกสาร XHTML ที่เข้ากันได้กับ HTMLควรเขียนด้วยตัวพิมพ์เล็ก
<title/foo/
<title>foo</title>
เพียงไม่กี่ HTML validatorsใช้ SGML สเป็ค HTML5 เป็นคนแรกที่อธิบายสิ่งนี้: whatwg.org/specs/web-apps/current-work/multipage/ …
html
) นี่คือประโยคเต็ม:“ ส่วนที่สองสามารถเขียนเป็นตัวพิมพ์เล็ก ( html
) ตัวพิมพ์ใหญ่ ( HTML
) หรือแม้แต่ตัวพิมพ์เล็ก( hTmL
) - มันยังคงใช้ได้ อย่างไรก็ตามเพื่อให้เป็นไปตามแนวทางการมาร์กอัปโพลีกลอตสำหรับเอกสาร XHTML ที่ใช้กับ HTML ได้ควรเขียนด้วยตัวพิมพ์เล็ก "
หากใครยังคงสงสัยในปี 2014 โปรดอ่าน:
HTML5
DOCTYPE ต้องประกอบด้วยส่วนประกอบต่อไปนี้ตามลำดับนี้:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
หมายเหตุ:แม้จะถูกแสดงในตัวพิมพ์ใหญ่ทั้งหมดข้อมูลจำเพาะระบุว่าไม่รู้สึกตัว
XHTML5
This specification does not define any syntax-level requirements
beyond those defined for XML proper.
XML documents may contain a DOCTYPE if desired, but this is not required
to conform to this specification. This specification does not define
a public or system identifier, nor provide a formal DTD.
ดูข้อมูลจำเพาะ XML มันแสดงรายการ DOCTYPE ในตัวพิมพ์ใหญ่ แต่ฉันไม่พบสิ่งใดที่ระบุว่าจำเป็นต้องใช้ "ตัวพิมพ์ใหญ่ทั้งหมด" (สำหรับการเปรียบเทียบในข้อกำหนด HTML5 ที่ระบุไว้ข้างต้นจะปรากฏในตัวอย่างในตัวพิมพ์ใหญ่ทั้งหมด แต่ ข้อมูลจำเพาะระบุไว้อย่างชัดเจนว่าไม่ตรงตามตัวพิมพ์ใหญ่ - เล็ก )
Polyglot Markup
บางครั้งมีประโยชน์ที่จะสามารถให้บริการเอกสาร HTML5 ที่มีเอกสาร XML ที่มีรูปแบบที่ดีเช่นกัน
Polyglot มาร์กอัปใช้การประกาศประเภทเอกสาร (DOCTYPE) ที่ระบุโดยส่วน 8.1.1 ของ [HTML5] นอกจากนี้ DOCTYPE เป็นไปตามกฎต่อไปนี้:
* The string DOCTYPE is in uppercase letters.
ดังนั้นโปรดทราบว่า Ployglot Markup ใช้ประเภท HTML5 ปกติ แต่มีการเพิ่ม / เปลี่ยนแปลง สำหรับการสนทนาของเราสะดุดตาที่สุดที่ DOCTYPE มีการประกาศตัวพิมพ์ใหญ่ทั้งหมด
ผลบวก
[ความคิดเห็น]ฉันจะไม่กังวลมากเกินไปเกี่ยวกับความสอดคล้องของ XML เว้นแต่คุณจะพยายามพิจารณาเป็นพิเศษ สำหรับลูกค้าส่วนใหญ่และการพัฒนาเซิร์ฟเวอร์ที่ใช้ JS, JSON ได้แทนที่ XML
ดังนั้นฉันสามารถเห็นการใช้งานนี้ได้จริง ๆ หากคุณพยายามอัปเดตระบบดั้งเดิมที่ใช้ xhtml / xml ให้มีอยู่ร่วมกับฟังก์ชัน HTML5 ใหม่ หากเป็นกรณีนี้ให้ดูที่ข้อมูลจำเพาะมาร์กอัปแบบหลายภาษา
ตามที่สเปคล่าสุดของ<!DOCTYPE html>
คุณควรใช้สิ่งที่เป็นคู่กรณีตายสำหรับ ดังนั้นในขณะที่เบราว์เซอร์จะต้องรองรับกรณีใดก็ตามที่คุณต้องการ แต่ก็มีเหตุผลที่จะอนุมานได้ว่านี่<!DOCTYPE html>
เป็นกรณีที่ยอมรับได้
<!DOCTYPE html>
ดังนั้นจึงมีเหตุผลที่จะอนุมานว่าผู้เขียนข้อมูลจำเพาะนั้นมีความพึงพอใจเล็กน้อยสำหรับการใช้ตัวพิมพ์ใหญ่นั้น ฉันจะใช้เงินทุนของ บริษัท เช่นเดียวกับสเปคเพราะมันเป็นเรื่องดีที่สิ่งเหล่านี้เพื่อให้สอดคล้อง แต่ถ้าคุณต้องการ<!dOcTyPe
แล้วเป็นแขกของฉัน :)
ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก "ถูกต้อง" อย่างไรก็ตามหากคุณใช้เว็บฟอนต์และใส่ใจเกี่ยวกับ IE7 ฉันขอแนะนำให้ใช้<!DOCTYPE html>
เพราะข้อผิดพลาดใน IE7 ซึ่งบางครั้งเว็บฟอนต์ล้มเหลวหากใช้<!doctype html>
(เช่นในคำตอบนี้ )
นี่คือเหตุผลที่ฉันมักจะเป็นประเภทตัวพิมพ์ใหญ่
มาตรฐานสำหรับ HTML5 คือแท็กนั้นไม่คำนึงถึงขนาดตัวพิมพ์
http://www.w3schools.com/html5/tag_doctype.asp
เทคนิคเพิ่มเติม: ( http://www.w3.org/TR/html5/syntax.html )
DOCTYPE ต้องประกอบด้วยส่วนประกอบต่อไปนี้ตามลำดับนี้:
<!DOCTYPE
สำหรับสตริงtag_doctype.asp
ไม่ถูกต้อง (404) และคำถามนี้เกี่ยวกับการdoctype
ประกาศซึ่งไม่ใช่แท็ก ... อย่างไรก็ตามข้อสรุปนั้นถูกต้อง: ใน HTML5 คำหลักdoctype
สามารถเป็นตัวพิมพ์ใหญ่ตัวพิมพ์เล็กหรือผสม
การเรียงลำดับคำถามหมายถึงมีคำตอบที่ถูกต้องเพียงข้อเดียวจัดให้มีตัวเลือกสองตัวเลือกและขอให้เราเลือก ฉันขอแนะนำว่าสำหรับ HTML5 ทั้งคู่<!DOCTYPE html>
และ<!doctype html>
ถูกต้อง
ดังนั้นเบราว์เซอร์ที่สามารถใช้ HTML5 จะยอมรับตัวพิมพ์เล็กและประมวลผล html อย่างถูกต้อง
เบราว์เซอร์รุ่นก่อนหน้าและไม่สนใจ HTML5 ที่ฉันเคยได้ยินแม้จะไม่มี doctype ก็จะพยายามประมวลผล html ให้ดีที่สุดเท่าที่จะทำได้ และหากพวกเขาไม่รู้จักประเภทตัวพิมพ์เล็กจะทำเช่นเดียวกัน ดังนั้นจึงไม่มีประเด็นที่ทำให้ตัวพิมพ์ใหญ่เป็นเพราะเบราว์เซอร์เหล่านั้นจะไม่สามารถใช้การประกาศ HTML5 ใด ๆ ได้อย่างเต็มที่
การประกาศ doctype นั้นไม่คำนึงถึงขนาดตัวพิมพ์และสตริงใด ๆ ของ ASCII ที่ตรงกัน