ອອກຈາກ Doctype ເພື່ອວາງຕົວທ່ອງເວັບເຂົ້າໄປໃນໂຫມດ Quirks
ຖ້າທ່ານໄດ້ອອກແບບຫນ້າເວັບຫຼາຍກວ່າສອງສາມເດືອນແລ້ວ, ທ່ານມັກຈະຮູ້ຄວາມຫຍຸ້ງຍາກໃນການຂຽນຫນ້າທີ່ ຄ້າຍຄືກັນໃນທຸກຕົວທ່ອງເວັບ . ໃນຄວາມເປັນຈິງແລ້ວ, ມັນເປັນໄປບໍ່ໄດ້. ຕົວທ່ອງເວັບຫຼາຍຄົນຖືກຂຽນດ້ວຍລັກສະນະພິເສດທີ່ພວກເຂົາສາມາດຈັດການໄດ້. ຫຼືພວກເຂົາເຈົ້າມີວິທີການພິເສດໃນການຈັດການສິ່ງທີ່ແຕກຕ່າງຈາກວິທີການຕົວທ່ອງເວັບອື່ນໆທີ່ຈັດການກັບພວກມັນ. ຍົກຕົວຢ່າງ:
- ຊັ້ນໄດ້ຖືກສ້າງຂື້ນເພື່ອໃຊ້ໃນຕົວທ່ອງເວັບ Netscape. ພວກເຂົາເຈົ້າບໍ່ໄດ້ເຮັດວຽກຢູ່ໃນຕົວທ່ອງເວັບອື່ນໃດກໍ່ຕາມ, ແລະໃນຄວາມເປັນຈິງໄດ້ຖືກປະຕິເສດໃນ Netscape 6.x +.
- ກອບຮູບເສັ້ນ ໄດ້ຖືກສ້າງຂື້ນໃນເບື້ອງຕົ້ນສໍາລັບ Internet Explorer, ແລະນັບຕັ້ງແຕ່ນັ້ນເປັນສ່ວນຫນຶ່ງຂອງຂໍ້ກໍານົດ HTML.
- Internet Explorer 6.0 ເພີ້ມພື້ນທີ່ເພີ່ມເຕີມ (ເຊັ່ນ: a
) ທີ່ຢູ່ອ້ອມຮອບ, ເວັ້ນເສຍແຕ່ວ່າທ່ານຂຽນເນື້ອໃນຂອງ div ທັງຫມົດໃນເສັ້ນຫນຶ່ງ (ຍາວ). (IE 6 ມີຫຼາຍ quirks ຫຼາຍເຊັ່ນດຽວກັນນີ້.) - Netscpe 4.7 ຈະບໍ່ສະແດງຕາຕະລາງທີ່ບໍ່ຖືກຂຽນໃນ HTML ທີ່ຖືກຕ້ອງ - ມັນສະແດງຫນ້າຫວ່າງເປົ່າແທນ. ນີ້ໄດ້ຖືກແກ້ໄຂໃນ Netscape 6.
ບັນຫາສໍາລັບນັກພັດທະນາ browser ແມ່ນວ່າພວກເຂົາຕ້ອງສ້າງຕົວທ່ອງເວັບທີ່ຫນ້າເວັບທີ່ເຫມາະສົມກັບຫນ້າເວັບທີ່ສ້າງຂຶ້ນສໍາລັບຕົວທ່ອງເວັບທີ່ມີອາຍຸ. ເພື່ອຈັດການກັບບັນຫານີ້, ຜູ້ສ້າງຕົວທ່ອງເວັບໄດ້ສ້າງທິບາຍຮູບແບບຕ່າງໆສໍາລັບຕົວທ່ອງເວັບເພື່ອດໍາເນີນການ. ທິບາຍຮູບແບບເຫຼົ່ານີ້ຖືກກໍານົດໂດຍການມີຫລືບໍ່ມີອົງປະກອບ DOCTYPE ແລະສິ່ງທີ່ DOCTYPE ເອີ້ນ.
ການປ່ຽນແປງ DOCTYPE ແລະ "Quirks Mode"
ຖ້າທ່ານໃສ່ DOCTYPE ຕໍ່ໄປນີ້ໃນຫນ້າເວັບຂອງທ່ານ:
ຕົວທ່ອງເວັບທີ່ທັນສະໄຫມ (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) ຈະແປຄວາມຫມາຍນີ້ໃນຮູບແບບດັ່ງຕໍ່ໄປນີ້:
- ເນື່ອງຈາກວ່າມີ DOCTYPE ລາຍລັກອັກສອນຢ່າງຖືກຕ້ອງ, ນີ້ເຮັດໃຫ້ມາດຕະຖານມາດຕະຖານ.
- ມັນເປັນເອກສານເອກະສານ HTML 4.01 Transitional
- ເນື່ອງຈາກວ່າມັນຢູ່ໃນຮູບແບບມາດຕະຖານ, ເບົາເຊີສ່ວນໃຫຍ່ຈະເຮັດໃຫ້ເນື້ອຫາທີ່ສອດຄ່ອງກັບ (ຫຼືສ່ວນໃຫຍ່ແມ່ນສອດຄ່ອງກັບ) HTML 4.01 Transitional
ແລະຖ້າທ່ານໃສ່ DOCTYPE ນີ້ໃນເອກະສານຂອງທ່ານ:
ນີ້ບອກຕົວທ່ອງເວັບທີ່ທັນສະໄຫມທີ່ທ່ານຕ້ອງການສະແດງຫນ້າ HTML 4.01 ຂອງທ່ານໃນການປະຕິບັດຢ່າງເຄັ່ງຄັດກັບ DTD.
ບັນດາຕົວທ່ອງເວັບເຫຼົ່ານີ້ຈະເຂົ້າໄປໃນຮູບແບບ "ທີ່ເຄັ່ງຄັດ" ຫຼື "ມາດຕະຖານ" ແລະເຮັດໃຫ້ຫນ້າທີ່ສອດຄ່ອງກັບມາດຕະຖານ. (ດັ່ງນັ້ນ, ສໍາລັບເອກະສານນີ້, ແທັກດັ່ງກ່າວອາດຈະຖືກປະຕິເສດໂດຍຕົວທ່ອງເວັບ, ເນື່ອງຈາກວ່າອົງປະກອບ FONT ໄດ້ຖືກປະຕິເສດໃນ HTML 4.01 ຢ່າງເຂັ້ມງວດ.)
ຖ້າທ່ານອອກຈາກ DOCTYPE ອອກຫມົດແລ້ວ, ຕົວທ່ອງເວັບຈະຖືກອັດເຂົ້າໄປໃນໂຫມດ "quirks" ໂດຍອັດຕະໂນມັດ.
ຕາຕະລາງຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນວ່າຕົວທ່ອງເວັບທົ່ວໄປເຮັດແນວໃດເມື່ອນໍາສະເຫນີປະກາດທີ່ແຕກຕ່າງກັນ DOCTYPE.
Microsoft ເຮັດໃຫ້ມັນຫນັກ
Internet Explorer 6 ຍັງມີຄຸນສົມບັດວ່າຖ້າທ່ານເອົາສິ່ງໃດຢູ່ເຫນືອການປະກາດ DOCTYPE, ພວກເຂົາຈະເຂົ້າໄປໃນໂຫມດ quirks. ດັ່ງນັ້ນ, ທັງສອງຕົວຢ່າງເຫຼົ່ານີ້ຈະເຮັດໃຫ້ IE 6 ເຂົ້າໄປໃນໂຫມດ quirks, ເຖິງແມ່ນວ່າການປະກາດ DOCTYPE ກ່າວວ່າຢູ່ໃນມາດຕະຖານມາດຕະຖານທີ່ເຂັ້ມງວດ:
ແລະ XHTML 1.1 DOCTYPE:
ນອກຈາກນີ້, ຖ້າທ່ານໄດ້ຮັບ IE6 ກ່ອນຫນ້ານີ້, ທ່ານມີ "ຄຸນສົມບັດ" ທີ່ Microsoft ເພີ່ມໃນ IE8 ແລະ IE9: ການປ່ຽນສະກຸນເງິນ META ແລະການປະມູນໃນເວັບໄຊທ໌. ໃນຄວາມເປັນຈິງ, ທັງສອງຮຸ່ນຂອງເບົາເຊີນີ້ມີເຖິງ 7 ໂຫມດຕ່າງໆ:
- IE 5.5 quirks mode (IE 8 ແລະ 9)
- IE 7 ໂຫມດມາດຕະຖານ (IE 8 ແລະ 9)
- IE 8 ໂຫມດເກືອບມາດຕະຖານ (IE 8 ແລະ 9)
- IE 8 ມາດຕະຖານມາດຕະຖານ (IE 8 ແລະ 9)
- IE 9 ເກືອບມາດຕະຖານມາດຕະຖານ (IE 9)
- ໂຫມດ IE 9 (IE 9)
- ໂຫມດ XML (IE 9)
IE 8 ຍັງແນະນໍາ "Mode Compatibility" ທີ່ຜູ້ໃຊ້ສາມາດເລືອກທີ່ຈະປ່ຽນຮູບແບບການສະແດງຜົນກັບ IE 7 ໂຫມດ. ດັ່ງນັ້ນ, ເຖິງແມ່ນວ່າທ່ານກໍານົດຮູບແບບທີ່ທ່ານຕ້ອງການທີ່ຈະກໍານົດໂດຍໃຊ້ທັງອົງປະກອບ DOCTYPE ແລະ META, ຫນ້າຂອງທ່ານ ຍັງ ສາມາດຖືກຍົກເລີກເຂົ້າໄປໃນໂຫມດທີ່ສອດຄ່ອງກັບມາດຕະຖານຫນ້ອຍ.
Quirks Mode ແມ່ນຫຍັງ?
ຮູບແບບ Quirks ໄດ້ຖືກສ້າງຂື້ນເພື່ອຊ່ວຍຈັດການກັບການສະຫນັບສະຫນູນຂອງຕົວທ່ອງເວັບແລະການສະແດງທີ່ບໍ່ເຂົ້າໃຈແລະການໂຕ້ຕອບທີ່ຜູ້ອອກແບບເວັບທີ່ໃຊ້ເພື່ອຈັດການກັບສິ່ງເຫຼົ່ານັ້ນ. ຄວາມກັງວົນທີ່ຜູ້ຜະລິດເບົາເຊີໄດ້ເຮັດແມ່ນວ່າຖ້າພວກເຂົາປ່ຽນຕົວທ່ອງເວັບຂອງພວກເຂົາໄປສູ່ການປະຕິບັດຕາມຂໍ້ກໍາຫນົດເຕັມຮູບແບບ, ຜູ້ອອກແບບເວັບຈະຖືກປະໄວ້.
ໂດຍການສ້າງຕັ້ງ DOCTYPE ການປ່ຽນແລະ "Quirks Mode" ນີ້ໄດ້ອະນຸຍາດໃຫ້ຜູ້ອອກແບບເວັບໄຊຕ໌ເລືອກວ່າພວກເຂົາຕ້ອງການຕົວທ່ອງເວັບເພື່ອໃຫ້ HTML ຂອງພວກເຂົາ.
Quirks Mode Effects
ມີຜົນກະທົບຫຼາຍຢ່າງທີ່ຕົວທ່ອງເວັບສ່ວນໃຫຍ່ໃຊ້ໃນ Quirks Mode:
- ໃນຕົວທ່ອງເວັບບາງ, ຮູບແບບກ່ອງປ່ຽນແປງລຸ້ນ IE 5.5 ຂອງຮູບແບບກ່ອງໃນໂຫມດ quirks.
- ຕົວທ່ອງເວັບບາງຄົນບໍ່ໄດ້ຮັບມໍລະດົກຮູບແບບເຂົ້າໃນຕາຕະລາງ
- ໂຫມດ Quirks ຜົນກະທົບຕໍ່ການແຍກຕົວ CSS ແລະ CSS layout ຢ່າງກວ້າງຂວາງ, ຖ້າທ່ານແປງຫນ້າໃນໂຫມດມາດຕະຖານຈາກໂຫມດ quirks, ໃຫ້ແນ່ໃຈວ່າຈະທົດສອບລັກສະນະ CSS ຂອງທ່ານແລະແຍກກັນຢ່າງກວ້າງຂວາງ.
- ເບິ່ງສໍາລັບການປ່ຽນແປງໃນການສະແກນໃນເວລາທີ່ຢູ່ໃນໂຫມດ quirks. ຕົວຢ່າງ Firefox ປ່ຽນວິທີການເຮັດວຽກຂອງແອຕົດລິບິວເຊັ່ນຕົວຢ່າງ. IE8 ແລະ IE9 ມີການປ່ຽນແປງຢ່າງຫຼວງຫຼາຍຕໍ່ scripting ໃນໂຫມດ quirks.
ຍັງມີຄວາມແຕກຕ່າງໃນ "ໂຫມດເກືອບມາດຕະຖານ:"
- ຄວາມສູງຂອງຈຸລັງຕາຕະລາງທີ່ມີຮູບພາບພາຍໃນພຽງແຕ່ຖືກປະຕິແຕກຕ່າງຈາກຮູບແບບມາດຕະຖານ.
ວິທີການເລືອກ DOCTYPE
ຂ້າພະເຈົ້າເຂົ້າໄປໃນລາຍະລະອຽດເພີ່ມເຕີມໃນບົດຄວາມ DOCTYPE ຂອງຂ້າພະເຈົ້າ, ແຕ່ນີ້ແມ່ນກົດລະບຽບທົ່ວໄປບາງຢ່າງ:
- ມັກເລືອກມາດຕະຖານມາດຕະຖານກ່ອນ. ແລະມາດຕະຖານໃນປັດຈຸບັນທີ່ທ່ານຄວນໃຊ້ແມ່ນ HTML5: ເວັ້ນເສຍແຕ່ວ່າທ່ານມີເຫດຜົນສະເພາະເພື່ອຫລີກລ້ຽງການໃຊ້ HTML5 DOCTYPE, ນີ້ແມ່ນສິ່ງທີ່ທ່ານຄວນໃຊ້.
- ໄປຫາ HTML 4.01 ທີ່ເຂັ້ມງວດຖ້າທ່ານຕ້ອງການກວດສອບອົງປະກອບທີ່ມີມໍລະດົກຫຼືຕ້ອງການຫຼີກເວັ້ນການລັກສະນະໃຫມ່ສໍາລັບເຫດຜົນບາງຢ່າງ:
- ຖ້າທ່ານມີຮູບຊິ້ນໆໃນຕາຕະລາງແລະບໍ່ຕ້ອງການແກ້ໄຂໃຫ້ເຂົາເຈົ້າ, ໃຫ້ໄປທີ່ເອກະສານ HTML 4.0.1:
- ຢ່າຂຽນຫນ້າເຈດຕະນາໃນໂຫມດ quirks. ສະເຫມີໃຊ້ DOCTYPE. ນີ້ຈະຊ່ວຍປະຢັດທ່ານໃນເວລາການພັດທະນາໃນອະນາຄົດ, ແລະກໍ່ບໍ່ມີຜົນປະໂຫຍດ. IE6 ແມ່ນໄວທີ່ສູນເສຍຄວາມນິຍົມແລະການອອກແບບສໍາລັບຕົວທ່ອງເວັບນີ້ (ຊຶ່ງເປັນສິ່ງຈໍາເປັນທີ່ອອກແບບໃນຮູບແບບ quirks) ທ່ານກໍາລັງຈໍາກັດຕົວເອງ, ຜູ້ອ່ານແລະຫນ້າຂອງທ່ານ. ຖ້າທ່ານຕ້ອງຂຽນສໍາລັບ IE 6 ຫຼື 7, ຫຼັງຈາກນັ້ນໃຫ້ໃຊ້ຄໍາຄິດເຫັນທີ່ມີເງື່ອນໄຂເພື່ອສະຫນັບສະຫນູນພວກເຂົາ, ແທນທີ່ຈະບັງຄັບໃຫ້ຕົວທ່ອງເວັບທີ່ທັນສະໄຫມເຂົ້າໄປໃນໂຫມດ quirks.
ເປັນຫຍັງຈຶ່ງໃຊ້ DOCTYPE
ເມື່ອໃດທີ່ທ່ານຮູ້ເຖິງການປ່ຽນແປງ DOCTYPE ແບບນີ້, ທ່ານສາມາດສົ່ງຜົນກະທົບຕໍ່ຫນ້າເວັບຕ່າງໆໄດ້ໂດຍກົງໂດຍໃຊ້ DOCTYPE ເຊິ່ງສະແດງເຖິງສິ່ງທີ່ຕົວທ່ອງເວັບສາມາດຄາດຫວັງຈາກຫນ້າເວັບຂອງທ່ານ. ນອກຈາກນີ້, ເມື່ອທ່ານເລີ່ມໃຊ້ DOCTYPE, ທ່ານຈະຂຽນ HTML ທີ່ໃກ້ຈະຖືກຕ້ອງ (ທ່ານຍັງຄວນຢືນຢັນມັນ). ແລະໂດຍຂຽນ XHTML ທີ່ຖືກຕ້ອງ, ທ່ານສະຫນັບສະຫນູນຜູ້ສ້າງຕົວທ່ອງເວັບໃນການສ້າງຕົວທ່ອງເວັບທີ່ສອດຄ່ອງກັບມາດຕະຖານ.
ຕົວທ່ອງເວັບ Versions ແລະ Quirks Mode
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 75+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
ບໍ່ມີ | Quirks Mode | Quirks Mode | Quirks Mode |
HTML 32 | |||
Quirks Mode | Quirks Mode | Quirks Mode | |
HTML 401 | |||
Transitional | ໂຫມດມາດຕະຖານ * | ໂຫມດມາດຕະຖານ * | ໂຫມດມາດຕະຖານ |
Transitional | Quirks Mode | Quirks Mode | Quirks Mode |
ຢ່າງເຂັ້ມງວດ | ໂຫມດມາດຕະຖານ | ໂຫມດມາດຕະຖານ * | ໂຫມດມາດຕະຖານ |
ຢ່າງເຂັ້ມງວດ | ໂຫມດມາດຕະຖານ | ໂຫມດມາດຕະຖານ * | ໂຫມດມາດຕະຖານ |
HTML5 | |||
ໂຫມດມາດຕະຖານ | ໂຫມດມາດຕະຖານ * | Quirks Mode | |
* ດ້ວຍ DOCTYPE ນີ້, ຕົວທ່ອງເວັບແມ່ນໃກ້ຊິດກັບມາດຕະຖານທີ່ສອດຄ່ອງ, ແຕ່ມີບາງບັນຫາ - ໃຫ້ແນ່ໃຈວ່າຈະທົດສອບ. ນີ້ແມ່ນມີຊື່ວ່າ "ເກືອບມາດຕະຖານມາດຕະຖານ." |