หากคุณเคยออกแบบหน้าเว็บมานานกว่าสองสามเดือนคุณมักจะตระหนักถึงปัญหาในการเขียนหน้าเว็บที่มีลักษณะเหมือนกันในทุกเบราว์เซอร์ ในแง่ของความเป็นจริงที่เป็นไปไม่ได้ เบราว์เซอร์หลายรุ่นมีคุณสมบัติพิเศษที่สามารถจัดการได้ หรือพวกเขามีวิธีพิเศษในการจัดการกับสิ่งต่างๆที่แตกต่างจากที่เบราว์เซอร์อื่นจัดการได้ ตัวอย่างเช่น:
- เลเยอร์ถูกสร้างขึ้นเพื่อใช้ในเบราว์เซอร์ Netscape พวกเขาไม่ได้ทำงานในเบราว์เซอร์อื่นใดและในความเป็นจริงได้ถูกเลิกใช้งานใน Netscape 6.x +
- เฟรมอินไลน์ถูกสร้างขึ้นสำหรับ Internet Explorer เท่านั้นและได้กลายเป็นส่วนหนึ่งของข้อกำหนด HTML แล้ว
- Internet Explorer 6.0 เพิ่มพื้นที่เพิ่มเติม (เช่น) โดยรอบแท็กเว้นแต่คุณจะเขียนเนื้อหาของ div ทั้งหมดในบรรทัดเดียว (ยาว) (IE 6 มี quirks มากขึ้นเช่นเดียวกับนี้)
- Netscpe 4.7 จะไม่แสดงตารางที่ไม่ได้เขียนด้วย HTML ที่ถูกต้อง แต่จะแสดงหน้าเปล่าแทน ได้รับการแก้ไขใน Netscape 6
ปัญหาสำหรับนักพัฒนาเบราว์เซอร์คือต้องสร้างเว็บเบราว์เซอร์ที่สามารถทำงานร่วมกับเว็บเบราว์เซอร์ที่เก่ากว่าได้ เพื่อจัดการกับปัญหานี้ผู้ผลิตเบราว์เซอร์ได้สร้างโหมดสำหรับเบราว์เซอร์เพื่อใช้งานโหมดเหล่านี้ถูกกำหนดโดยการมีหรือไม่มีองค์ประกอบ DOCTYPE และสิ่งที่ DOCTYPE
โทร
DOCTYPE
ฉันเข้าไปดูรายละเอียดเพิ่มเติมในบทความของฉัน DOCTYPE
รายการ แต่นี่เป็นกฎทั่วไปของหัวแม่มือ:
- เลือกโหมดมาตรฐานทุกครั้ง มาตรฐานปัจจุบันที่คุณควรใช้ก็คือ HTML5: ยกเว้นกรณีที่คุณมีเหตุผลเฉพาะเพื่อหลีกเลี่ยงการใช้ HTML5
DOCTYPE
นี่คือสิ่งที่คุณควรใช้ - ไปที่ HTML 4.01 ที่เข้มงวดหากคุณต้องการตรวจสอบความถูกต้องขององค์ประกอบเดิมหรือต้องการหลีกเลี่ยงคุณลักษณะใหม่ ๆ ด้วยเหตุผลบางประการ:
- หากคุณได้หั่นบาง ๆ ภาพไว้ในตารางและไม่ต้องการแก้ไขให้ไปที่การเปลี่ยนรูป HTML 4.01:
- อย่าเขียนหน้าอย่างจงใจในโหมดที่ไม่ชอบ ใช้ a. เสมอ
DOCTYPE
. นี้จะช่วยคุณประหยัดเวลาในการพัฒนาในอนาคตและจริงๆไม่มีประโยชน์ IE6 กำลังสูญเสียความนิยมอย่างรวดเร็วและโดยการออกแบบสำหรับเบราว์เซอร์นี้ (ซึ่งโดยพื้นฐานแล้วการออกแบบในโหมด quirks คือ) คุณจะ จำกัด ตัวเองผู้อ่านและหน้าเว็บของคุณ ถ้าคุณต้องเขียนสำหรับ IE 6 หรือ 7 จากนั้นใช้ความคิดเห็นที่มีเงื่อนไขเพื่อสนับสนุนพวกเขาแทนที่จะบังคับให้เบราว์เซอร์รุ่นใหม่เข้าสู่โหมดที่ไม่เหมาะ
ทำไมต้องใช้ DOCTYPE
เมื่อคุณตระหนักถึงประเภทนี้แล้ว DOCTYPE
การเปิดใช้งานคุณสามารถส่งผลต่อหน้าเว็บของคุณได้โดยตรงมากขึ้นโดยใช้ a DOCTYPE
ซึ่งบ่งบอกถึงสิ่งที่เบราเซอร์สามารถคาดหวังได้จากหน้าเว็บของคุณ นอกจากนี้เมื่อคุณเริ่มใช้ DOCTYPE
คุณจะเขียน HTML ใกล้เคียงกับที่ถูกต้อง (คุณยังควรตรวจสอบความถูกต้อง) และโดยการเขียน XHTML ที่ถูกต้องคุณจะแนะนำให้ผู้ผลิตเบราว์เซอร์สร้างมาตรฐานเบราว์เซอร์ที่เข้ากันได้
เวอร์ชันเบราว์เซอร์และโหมด Quirks
DOCTYPE | AndroidโครเมียมFirefoxIE 8 ขึ้นไปiOSOpera 7.5+การแข่งรถวิบาก | IE 6IE 7Opera 7 | Netscape 6 |
---|---|---|---|
ไม่มี | โหมด Quirks | โหมด Quirks | โหมด Quirks |
HTML 3.2 | |||
โหมด Quirks | โหมด Quirks | โหมด Quirks | |
HTML 4.01 | |||
เกี่ยวกับการนำส่ง | โหมดมาตรฐาน * | โหมดมาตรฐาน * | โหมดมาตรฐาน |
เกี่ยวกับการนำส่ง | โหมด Quirks | โหมด Quirks | โหมด Quirks |
เข้มงวด | โหมดมาตรฐาน | โหมดมาตรฐาน * | โหมดมาตรฐาน |
เข้มงวด | โหมดมาตรฐาน | โหมดมาตรฐาน * | โหมดมาตรฐาน |
HTML5 | |||
โหมดมาตรฐาน | โหมดมาตรฐาน * | โหมด Quirks | |
* ด้วย DOCTYPE เบราว์เซอร์นี้ใกล้เคียงกับมาตรฐานแล้ว แต่มีปัญหาบางอย่างอย่าลืมทดสอบ นี่เป็นที่รู้จักกันว่า "เกือบมาตรฐานโหมด" |