ฉันถูกถามวันนี้ว่าฉันมีความเข้าใจอย่างละเอียดเกี่ยวกับแท็ก <! doctype> หรือไม่? ฉันตกตะลึงอยู่ครู่หนึ่งเพราะฉันเห็นมันในตอนแรกที่ฉันแนะนำให้ใช้ DTD Transitional Transitional บน W3CSchool จากนั้นฉันก็ตั้งค่าเอกสาร HTML ของ Dreamweaver เป็น XHTML 1.0 โดยค่าเริ่มต้น มันถูกใช้เพื่อให้ได้รับจนถึงตอนนี้ ผู้คนเป็นคนขี้เกียจจริงๆ ยิ่งพวกเขาเติบโตขึ้นเท่าไหร่พวกเขาก็จะได้รับ มีหลายสิ่งหลายอย่างที่ได้รับโดยไม่รู้ตัว ตั้งแต่ฉันถูกถามฉันจึงไปหาข้อมูลและสรุป ลองมาเป็นโน้ต ~~
คำจำกัดความของ <! doctype> :การประกาศ <! doctype> อยู่ที่ตำแหน่งด้านหน้าสุดในเอกสารก่อนแท็ก <html> แท็กนี้จะบอกเบราว์เซอร์ว่าข้อกำหนด HTML หรือ XHTML ที่ใช้สำหรับเอกสาร
แท็กนี้สามารถประกาศสามประเภท DTD ซึ่งเป็นตัวแทนของเวอร์ชันที่เข้มงวดเวอร์ชันการเปลี่ยนแปลงและรุ่น HTML ที่ใช้เฟรมเวิร์ก (หากแท็กในเอกสารไม่ปฏิบัติตาม DTD ที่ระบุโดยการประกาศ DocType เอกสารนี้อาจไม่แสดงอย่างถูกต้องในเบราว์เซอร์นอกเหนือจากการไม่ผ่านการตรวจสอบรหัส)
การใช้ <! doctype> :<! doctype html สาธารณะ -// w3c // dtd xhtml 1.0 เข้มงวด // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd> การวิเคราะห์ที่อยู่ในการวิเคราะห์ -// w3c // dtd xhtml 1.0 เข้มงวด // en เบราว์เซอร์จะเข้าใจวิธีการค้นหา DTD ที่ตรงกับตัวระบุสาธารณะนี้ หากไม่พบเบราว์เซอร์จะใช้ URL หลังจากตัวระบุสาธารณะเป็นตำแหน่งที่จะมองหา DTD
-: ระบุว่าชื่อองค์กรไม่ได้ลงทะเบียน Internet Engineering Task Force (IETF) และ World Wide Web Association (W3C) ไม่ได้ลงทะเบียนกับองค์กร ISO
+ เป็นค่าเริ่มต้นซึ่งระบุว่าชื่อองค์กรนั้นลงทะเบียน
DTD: ระบุคลาสข้อความสาธารณะนั่นคือประเภทวัตถุที่อ้างอิง ค่าเริ่มต้นคือ DTD
HTML: ระบุคำอธิบายข้อความสาธารณะนั่นคือชื่ออธิบายที่ไม่ซ้ำกันสำหรับข้อความสาธารณะที่อ้างอิง สามารถรวมหมายเลขเวอร์ชันได้ในภายหลัง ค่าเริ่มต้นคือ HTML
URL: ระบุตำแหน่งของวัตถุที่อ้างอิง
เข้มงวด: ไม่รวมคุณลักษณะและองค์ประกอบที่เป็นตัวแทนทั้งหมดที่ผู้เชี่ยวชาญ W3C ต้องการยกเลิก
เอกสาร HTML สามประเภท:HTML 4.01 ระบุสามประเภทเอกสาร: เข้มงวด, เปลี่ยนผ่านและเฟรม
a) หากคุณต้องการมาร์กอัปที่สะอาดเพื่อหลีกเลี่ยงความสับสนในการนำเสนอให้ใช้ HTML ที่เข้มงวด DTD ประเภท:
<! doctype html สาธารณะ -// w3c // dtd html 4.01 // en http://www.w3.org/tr/html4/strict.dtd>
B) DTD ในช่วงเปลี่ยนผ่านสามารถมีคุณลักษณะการแสดงผลและองค์ประกอบที่ W3C คาดว่าจะย้ายไปเป็นแผ่นสไตล์ หากผู้ใช้ใช้เบราว์เซอร์ที่ไม่รองรับ Cascading Style Sheets (CSS) เพื่อให้คุณต้องใช้แอตทริบิวต์การเรนเดอร์ของ HTML ให้ใช้ประเภท DTD ในช่วงเปลี่ยนผ่าน:
<! doctype html สาธารณะ -// w3c // dtd html 4.01 transitional // en http://www.w3.org/tr/html4/loose.dtd>
C) Frameset DTD ใช้สำหรับเอกสารที่มีเฟรม ยกเว้นองค์ประกอบเฟรมเซ็ตที่แทนที่องค์ประกอบของร่างกาย Frameset DTD เทียบเท่ากับ DTD ในช่วงเปลี่ยนผ่าน:
<! doctype html สาธารณะ -// w3c // dtd html 4.01 frameset // en http://www.w3.org/tr/html4/frameset.dtd>
เอกสาร XML สามประเภท :XHTML 1.0 ระบุเอกสาร XML สามประเภท: เข้มงวด, เปลี่ยนผ่านและเฟรม
a) หากคุณต้องการมาร์กอัปที่สะอาดเพื่อหลีกเลี่ยงความสับสนในการนำเสนอให้ใช้ประเภท DTD ที่เข้มงวด XHTML:
<! doctype html สาธารณะ -// w3c // dtd xhtml 1.0 เข้มงวด // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>
B) DTD ในช่วงเปลี่ยนผ่านสามารถมีคุณลักษณะการแสดงผลและองค์ประกอบที่ W3C คาดว่าจะย้ายไปเป็นแผ่นสไตล์ หากผู้ใช้ใช้เบราว์เซอร์ที่ไม่รองรับ Cascading Style Sheets (CSS) เพื่อให้คุณต้องใช้แอตทริบิวต์การเรนเดอร์ของ HTML ให้ใช้ประเภท DTD ในช่วงเปลี่ยนผ่าน:
<! doctype html สาธารณะ -// w3c // dtd xhtml 1.0 transitional // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
C) Frameset DTD ใช้สำหรับเอกสารที่มีเฟรม ยกเว้นองค์ประกอบเฟรมเซ็ตที่แทนที่องค์ประกอบของร่างกาย Frameset DTD เทียบเท่ากับ DTD ในช่วงเปลี่ยนผ่าน:
<! doctype html สาธารณะ -// w3c // dtd xhtml 1.0 frameset // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>
เลือก Doctype ที่ถูกต้อง :เพื่อให้ได้การประกาศ doctype ที่ถูกต้องกุญแจสำคัญคือการทำให้ DTD สอดคล้องกับมาตรฐานตามด้วยเอกสาร
ตัวอย่างเช่นสมมติว่าเอกสารเป็นไปตามมาตรฐาน XHTML 1.0 ที่เข้มงวดการประกาศ doctype ของเอกสารควรอ้างถึง DTD ที่เกี่ยวข้อง
ในทางกลับกันมันไม่เหมาะสมหากการประกาศ doctype ระบุ XHTML DTD แต่เอกสารมีแท็ก HTML แบบเก่า; ในทำนองเดียวกันมันก็ไม่เหมาะสมหากการประกาศ Doctype ระบุ HTML DTD แต่เอกสารมีแท็ก XHTML 1.0 ที่เข้มงวด
หากไม่ได้ระบุการประกาศ doctype ที่ถูกต้องเบราว์เซอร์ส่วนใหญ่จะใช้ DTD เริ่มต้นในตัว ในกรณีนี้เบราว์เซอร์จะใช้ DTD ในตัวเพื่อพยายามแสดงแท็กที่คุณระบุ (แต่นี่คือสิ่งที่คุณทำเมื่อหน้าเขียนไม่ดีเกินไป)
ฉันดูที่ JD.com, Taobao และ Blog Park และฉันใช้สิ่งนี้ (ฉันมักจะใช้สิ่งนี้):
<! doctype html สาธารณะ -// w3c // dtd xhtml 1.0 transitional // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
อย่างไรก็ตามฉันพบว่า Baidu และ Google ใช้ <! doctype html> ดังนั้นฉันจึงตรวจสอบข้อมูลอย่างระมัดระวังและพบว่า HTML5 ยังใช้โดยตรง แต่เนื่องจาก HTML 5 ไม่ได้ขึ้นอยู่กับ SGML ดังนั้นจึงไม่จำเป็นต้องทำ DTD
การอ้างอิง แต่จำเป็นต้องมี doctype เพื่อควบคุมพฤติกรรมของเบราว์เซอร์ (ให้เบราว์เซอร์ทำงานตามที่ควร)
ขอแนะนำให้ใช้ <! doctype html> โดยตรงในอนาคต หากคุณใช้ <! doctype html> โหมดความเข้ากันได้มาตรฐานของเบราว์เซอร์จะเปิดใช้งาน ในโหมดความเข้ากันได้มาตรฐานไม่สามารถรับประกันได้ว่าจะเข้ากันได้กับรุ่นอื่น ๆ (ก่อน IE6 เพียงเพิกเฉย) Internet Explorer พฤติกรรมการแสดงผลของเอกสารอาจแตกต่างจาก Internet Explorer ในอนาคต แต่โปรดใช้มัน ~~
เคล็ดลับ :XHTML 1 คือ XMLIZATION ของ HTML 4.01 ซึ่งเป็นรูปแบบที่ไม่เข้ากันได้
doctype ใน HTML 4.01 ต้องการการอ้างอิงถึง DTD เนื่องจาก HTML 4.01 ขึ้นอยู่กับ SGML
SGML ระบุรูปแบบมาตรฐานสำหรับการฝังแท็กคำอธิบายในเอกสารและระบุวิธีมาตรฐานสำหรับการอธิบายโครงสร้างเอกสาร รูปแบบ HTML ที่ใช้ในเว็บในปัจจุบันเป็นเอกสาร SGML ที่ใช้ชุดแท็กคงที่