Quirks Mode горим руу хөтчийг оруулахын тулд Doctype-ыг орхи
Хэрвээ та вэб хуудсыг хэдэн сараас илүү дизайн хийлгэж байсан бол та бүх хөтчүүдэд ижилхэн хуудсыг бичихэд хүндрэлтэй байснаа мэддэг байх. Үнэндээ бол боломжгүй зүйл. Олон хөтөч нь зөвхөн ажиллах боломжтой тусгай функцээр бичигдсэн. Эсвэл тэд бусад хөтөчүүдийг хэрхэн зохицуулахаас өөр зүйлүүдийг зохицуулах тусгай арга замуудтай байдаг. Жишээлбэл:
- Давхаргууд нь Netscape браузерт ашиглагдахаар бүтээгдсэн. Тэд бусад хөтөч дээр ажилладаггүй бөгөөд үнэндээ Netscape 6.x + дээр хуучирсан байна.
- Inline frames нь зөвхөн Internet Explorer-д зориулж үүсгэгдсэн бөгөөд тэр үеэс хойш HTML тодорхойлолтуудын нэг хэсэг болсон.
- Internet Explorer 6.0 нь нэмэлт зайг (жишээ нь
) Далд хаягуудыг бүгдийг нь нэг (урт) мөрөнд бичихгүй бол хүрээлэн буй хаягууд. (IE 6 нь үүнээс ч илүү олон төрлийн quirks болон энэ байна.) - Netscpe 4.7 нь зөв HTML-т бичигдээгүй хүснэгтүүдийг харуулахгүй - энэ нь хоосон хуудас харуулж байна. Энэ нь Netscape 6-д тогтоогдсон.
Хөтөч хөгжүүлэгчдийн хувьд тэд хуучин хөтчүүдэд зориулсан вэб хуудсуудтай нийцтэй вэб хөтчүүдийг үүсгэх ёстой гэсэн үг юм. Энэ асуудлыг шийдэхийн тулд браузер үйлдвэрлэгчид хөтөчийг ажиллуулах горимыг бүтээсэн. Эдгээр горимууд нь DOCTYPE элемент байгаа эсэх болон DOCTYPE-ийн дуудлагаар тодорхойлогддог.
DOCTYPE Switching ба "Quirks Mode"
Хэрэв та дараахь DOCTYPE вэб хуудсандаа тавьбал:
Орчин үеийн хөтөч (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) үүнийг дараах байдлаар тайлбарлах болно:
- Учир нь зөв бичсэн DOCTYPE байгаа тул энэ нь стандарт горимд нөлөөлдөг.
- Энэ бол HTML 4.01 Шилжилтийн бичиг баримт
- Стандарт горимд байгаа учраас ихэнх хөтөч HTML 4.01 Transitional-тэй агуулгад нийцсэн (эсвэл ихэвчлэн нийцсэн) үзүүлэх болно
Хэрэв та DOCTYPE-г өөрийн документэд оруулсан бол:
Энэ нь таны HTML 4.01 хуудсыг DTD-той нийцүүлэн харуулахыг хүсч байгаа орчин үеийн хөтөчүүдийг хэлдэг.
Эдгээр хөтчүүд нь "хатуу" эсвэл "стандарт" горимд орж, стандартыг дагаж буй хуудсыг тавина. (Тиймээс, энэ баримтын хувьд HTML 4.01-д FONT элемент хуучирсан байгаа тул браузерыг бүрэн үл тоомсорлож болох хаягууд).
Хэрэв та DOCTYPE-г бүрэн орхисон бол хөтөчид автоматаар "quirks" горимд өшиглөгдөнө.
Доорх хүснэгт нь янз бүрийн нийтлэг DOCTYPE мэдэгдэлд танилцуулсан нийтлэг хөтчүүдийг юу хийдэгийг харуулж байна.
Microsoft үүнийг илүү хэцүү болгодог
Internet Explorer 6 нь мөн DOCTYPE-ийн мэдэгдлийн дээр юу ч хийчихсэн зүйл байвал, тэдгээр нь quirks горимд орох болно. Тиймээс эдгээр жишээ хоёул IE6-ийг quirks горимд тавьдаг боловч DOCTYPE-ийн мэдэгдэл нь хатуу стандарт горимд байна гэж хэлж болно:
болон XHTML 1.1 DOCTYPE:
Дээрээс нь, хэрэв та IE6 өнгөрсөн бол IE8 болон IE9-д нэмэгдсэн "онцлог" нь META элемент шилжих болон вэбсайт дээр хар жагсаалтад нэмэгдсэн байна. Үнэндээ эдгээр хоёр браузерын хувилбарууд одоо хүртэл 7 (!) Өөр өөр горимуудтай:
- IE 5.5 quirks горим (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 нь мөн "Compatibility Mode" -ыг нэвтрүүлсэн бөгөөд rendering загварыг IE 7 горимд шилжүүлэхээр сонгож болно. Ингэснээр та DOCTYPE болон META элементүүдийг ашиглан тохируулах горимыг тохируулсан ч таны хуудсыг стандартад нийцэхгүй горимд буцааж оруулах боломжтой.
Quirks горим гэж юу вэ?
Quirks горим нь вэбсайтын дизайнерууд эдгээр зүйлсийг шийдэхэд ашигладаг бүх хачин дүрмүүд болон үл нийцэх хөтөчийг дэмжих болон хакеруудтай ажиллахад туслах зорилгоор бүтээсэн. Браузер үйлдвэрлэгчдийн санаа зовж байсан зүйл бол хэрэв тэд хөтөчийг бүрэн тодорхойлолтыг дагаж мөрдвөл вэб дизайнерууд үлдэх байсан.
DOCTYPE шилжүүлэлт болон "Quirks Mode" тохиргоог хийснээр вэб дизайнерууд өөрсдийнхөө HTML-ийг хэрхэн хөтлөхийг хүсч байгаагаа сонгох боломжийг олгодог.
Quirks Mode Effects
Quirks горимд ихэнх хөтөч ашиглах хэд хэдэн нөлөө байдаг:
- Зарим хөтөч дээр хайрцагны загвар нь quirks горимын хайрцагны загварын IE 5.5 хувилбарт өөрчлөлт орно.
- Зарим хөтөч нь стилийг хүснэгтүүдэд өвлөхгүй
- Quirks горим нь CSS болон CSS layout-ийн үр дүнг тооцоход нөлөөлдөг. Хэрэв та хуудсуудыг стандарт горимд хөрвүүлэх горимоос нь хөрвүүлж байгаа бол CSS-ийн зохион байгуулалтыг тестлэх, нийтлэг тест хийхийг анхаараарай.
- Quirks горимын үед скриптүүдэд өөрчлөлт оруулахыг ажиглах. Firefox нь аттрибутын үйлдэл хийх арга замыг өөрчилдөг. IE8 ба IE9 нь quirks горимд скрипт бичихэд маш их өөрчлөлтүүдтэй байна.
"Хамгийн бараг стандарт горим:"
- Дотор нь зөвхөн доторх зурагтай хүснэгтүүдийн өндрийг стандарт горимоос өөрөөр тооцдог.
DOCTYPE-г хэрхэн сонгох
Би DOCTYPE-ийн жагсаалтанд илүү дэлгэрэнгүй авч үзье.
- Стандарт горимыг үргэлж сонгох хэрэгтэй. Өнөө үед та HTML5 байх ёстой: Хэрэв та HTML5 DOCTYPE-г ашиглахаас зайлсхийх тодорхой шалтгаан байхгүй бол энэ нь та ашиглах ёстой зүйл юм.
- Хэрэв та хуучин шинж чанарыг бататгах эсвэл зарим шалтгааны улмаас шинэ функцээс зайлсхийхийг хүсвэл хатуу HTML 4.01 руу орно уу:
- Хэрвээ та хүснэгтэд хэрчсэн зурагтай бөгөөд тэдгээрийг засахыг хүсэхгүй байгаа бол Transitional HTML 4.01 руу орно уу:
- Хэзээ хуудсуудыг quirks горимд санаатайгаар бичиж болохгүй. DOCTYPE-г үргэлж ашиглах хэрэгтэй. Энэ нь таныг ирээдүйд хөгжүүлэх цагт хэмнэх бөгөөд үнэхээр ямар ч ашиггүй болно. IE6 хурдацтай тархаж, энэ хөтөч дээр дизайн хийснээр (quirks горимоороо дизайн хийдэг) өөрөө өөрсдийгөө, уншигчид, хуудаснуудаа хязгаарладаг. Хэрэв та IE 6 буюу 7-т зориулж бичих хэрэгтэй бол орчин үеийн хөтөчийг quirks горимд оруулахаасаа илүү болзол нөхцлийн тайлбарыг ашиглана уу.
Яагаад DOCTYPE ашиглах вэ
Та DOCTYPE-г шилжүүлж байгаа энэ төрлийг мэдсэний дараа, та DOCTYPE-г ашиглан вэб хуудсаа илүүд үзэх боломжтой бөгөөд энэ нь вэбсайтаас таны броузерыг юу хүлээж байгааг харуулж чадна. Мөн та DOCTYPE-ийг хэрэглэснээс хойш HTML-г бичиж байх болно (та үүнийг батлах хэрэгтэй). Мөн хүчин төгөлдөр XHTML-ээр бичсэнээр хөтчийн үйлдвэрлэгчид стандартад нийцсэн хөтчүүдийг бүтээхийг дэмждэг.
Хөтөч хувилбарууд ба Quirks горим
DOCTYPE | Андройд Кром Firefox IE 8+ Тагийн Opera 7.5+ Сафари | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Байхгүй | Quirks Mode | Quirks Mode | Quirks Mode |
HTML 3.2 | |||
Quirks Mode | Quirks Mode | Quirks Mode | |
HTML 4.01 | |||
Шилжилт | Стандарт горим * | Стандарт горим * | Стандарт горим |
Шилжилт | Quirks Mode | Quirks Mode | Quirks Mode |
Хүчтэй | Стандарт горим | Стандарт горим * | Стандарт горим |
Хүчтэй | Стандарт горим | Стандарт горим * | Стандарт горим |
HTML5 | |||
Стандарт горим | Стандарт горим * | Quirks Mode | |
* Энэ DOCTYPE-ийн тусламжтайгаар хөтчүүд стандартыг дагаж мөрддөг боловч зарим асуудлуудыг туршиж үзээрэй. Үүнийг "Бараг Стандарт Mode" гэж нэрлэдэг. |