Quirkks rejimida DOCTYPE elementidan foydalanish

Browserlarni Quirks rejimiga qo'yish uchun Doctype-ni tark eting

Agar siz veb-sahifalarni bir necha oydan ko'proq vaqt mobaynida loyihalashtirmoqchi bo'lsangiz, siz barcha brauzerlarda bir xil ko'rinadigan sahifani yozishdagi qiyinchiliklardan xabardormiz. Aslida bu mumkin emas. Ko'pgina brauzerlar faqatgina ular bajarishi mumkin bo'lgan maxsus xususiyatlar bilan yozilgan. Yoki ular boshqa brauzerlarning qanday ishlashidan farqli narsalarni boshqarishning maxsus usullari mavjud. Masalan:

Brauzer ishlab chiquvchilarining muammolari eski brauzerlar uchun yaratilgan veb-sahifalar bilan mos keladigan veb-brauzerlarni yaratish kerak. Ushbu muammoni bartaraf etish uchun brauzerlar brauzerlarning ishlash rejimlarini yaratdilar. Ushbu usullar DOCTYPE elementining mavjudligi yoki yo'qligi va DOCTYPE chaqiruvlari bilan aniqlanadi.

DOCTYPE almashinuvi va "Quirks Mode"

Quyidagi DOCTYPE-ni veb-sahifangizga qo'ying:

Zamonaviy brauzerlar (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) buni quyidagi tarzda sharhlaydi:

  1. To'g'ri yozilgan DOCTYPE bo'lgani uchun, bu standartlar rejimini ishga tushiradi.
  2. HTML 4.01 Transitional hujjati
  3. Standartlar rejimida bo'lgani uchun, brauzerlarning ko'pchiligi HTML 4.01 Transitional bilan mos keluvchi (yoki ko'pincha mos keladigan) ma'lumotni taqdim etadi.

Agar siz ushbu DOCTYPE-ni hujjatingizga qo'ygan bo'lsangiz:

Bu sizning HTML 4.01 sahifangizni DTD-ga qattiq moslashtirmoqchi bo'lgan zamonaviy brauzerlarni bildiradi.

Ushbu brauzerlar "qat'iy" yoki "standartlar" rejimiga o'tadi va sahifani standartlarga muvofiqlashtiradi. (Ya'ni, ushbu hujjat uchun brauzer tomonidan taglar butunlay e'tiborsiz qolishi mumkin, chunki FONT elementi HTML 4.01 Strict bilan bekor qilingan.)

Agar siz DOCTYPE-dan to'liq chiqarsangiz, brauzerlar avtomatik ravishda "quirks" rejimiga otlanadi.

Quyidagi jadval turli xil umumiy DOCTYPE deklaratsiyalarida taqdim etilgan umumiy brauzerlarning nima ekanligini ko'rsatadi.

Microsoft Making It Harder

Internet Explorer 6 da, DOCTYPE deklaratsiyasining yuqori qismida biror narsa yozsangiz, ular hayron bo'lish rejimiga o'tadi. Ya'ni, bu ikkala misol ham IE 6 ni quirklar rejimiga qo'yadi, garchi DOCTYPE deklaratsiyasi qattiq standartlar rejimida bo'lishini aytadi:

va XHTML 1.1 DOCTYPE:

Bundan tashqari, agar siz IE6-dan o'tayotgan bo'lsangiz, Microsoft-ning IE8 va IE9-da qo'shilgan "xususiyati" mavjud: META elementlarini almashtirish va veb-saytlar qora ro'yxatga olish. Aslida, bu ikkita brauzer versiyasi endi etti (!) Turli xil rejimlarga ega:

IE 8 shuningdek, foydalanuvchi modelini IE 7 rejimiga o`zgartirishni tanlashi mumkin bo`lgan "Muvofiqlik tartibi" ni ham joriy qildi. Shunday qilib, siz DOCTYPE va META ma'lumotlaridan foydalanishni xohlagan tartibni o'rnatgan bo'lsangiz ham, sizning sahifangiz hali ham kam standartlarga muvofiq rejimga qaytishi mumkin.

Quirks rejimi nima?

Quirks rejimi barcha g'aroyib ko'rsatuvlar va mos kelmaydigan brauzerlarni qo'llab-quvvatlash bilan shug'ullanish va veb-dizaynerlar bu narsalarni engish uchun foydalanganliklarini oldini olish uchun yaratilgan. Brauzer ishlab chiqaruvchilari o'zlarining brauzerlarini to'liq texnik jihatlarga moslashtirgan holda veb-dizaynerlari ortda qolib ketishgan.

DOCTYPE almashinuvini va "Quirks Mode" ni sozlash orqali bu veb-dizaynerlar HTML-larini brauzerlarning qanday qilib ko'rsatishlarini xohlashlarini tanlashga imkon berdi.

Quirks rejimi ta'siri

Ko'pchilik brauzerlarning Quirks rejimida foydalanadigan bir nechta ta'siri bor:

Bundan tashqari, "Almashtirish standartlari tartibi" da farq bor.

DOCTYPE ni qanday tanlash mumkin

DOCTYPE ro'yxati mening maqolamda batafsilroq ma'lumotga ega bo'laman, ammo bu erda bosh barmoqning umumiy qoidalari bor:

  1. Har doim standartlar rejimini tanlang. Va siz foydalanmoqchi bo'lgan standart HTML5:
    Agar sizda HTML5 DOCTYPE dan foydalanishni oldini olish uchun aniq bir sabab bo'lmasa, siz ulardan foydalanishingiz kerak.
  2. Agar siz eski elementlarni tasdiqlashingiz yoki yangi sabablarga yo'l qo'ymaslik zarur bo'lsa, qattiq HTML 4.01 ga o'ting:
  3. Agar jadvaldagi rasmlarni kesib olgan bo'lsangiz va ularni tuzatish istamasangiz, Transitional HTML 4.01 ga o'ting:
  4. Tuklar rejimida sahifalarni qasddan yozmang. Har doim DOCTYPE dan foydalaning. Bu sizni kelajakda rivojlanish vaqtida qutqaradi va, albatta, hech qanday foyda yo'q. IE6 tezda mashhurlikni yo'qotadi va bu brauzerni loyihalash orqali (aslida quirks rejimida nima desangki) siz o'zingizni, o'quvchilaringizni va sahifalarni cheklab qo'yasiz. IE 6 yoki 7 uchun yozishni talab qilsangiz, ularga zamonaviy brauzerlarni chirkinlik rejimiga majbur qilishdan ko'ra, ularni qo'llab-quvvatlash uchun shartli sharhlardan foydalaning.

DOCTYPE ni nima uchun ishlatish kerak

DOCTYPE ushbu turdagi o'zgarishlardan xabardor bo'lganingizdan so'ng, veb-sahifalaringizga to'g'ridan-to'g'ri DOCTYPE orqali brauzeringizning sahifangizdan qanday kutishlari mumkinligini ko'rsatadigan ta'sir ko'rsatishi mumkin. Bundan tashqari, siz DOCTYPE dan foydalanishni boshlaganingizdan so'ng, siz HTMLga tegishli bo'lgan HTMLni yanada yaqinroq yozishingiz kerak bo'ladi (siz uni tasdiqlashingiz kerak). Va haqiqiy XHTMLni yozish orqali siz brauzer tuzuvchilarni standartlarga muvofiq brauzerlarni yaratish uchun rag'batlantirasiz.

Brauzer versiyalari va Quirks rejimi

DOCTYPE Android
Chrome
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Yo'q Quirks rejimi Quirks rejimi Quirks rejimi
HTML 3.2
Quirks rejimi Quirks rejimi Quirks rejimi
HTML 4.01
O'tish davri Standartlar tartibi * Standartlar tartibi * Standartlar tartibi
O'tish davri Quirks rejimi Quirks rejimi Quirks rejimi
Qattiq Standartlar tartibi Standartlar tartibi * Standartlar tartibi
Qattiq Standartlar tartibi Standartlar tartibi * Standartlar tartibi
HTML5
Standartlar tartibi Standartlar tartibi * Quirks rejimi
* Ushbu DOCTYPE yordamida brauzerlar standartlarga mos keladi, ammo ba'zi muammolar mavjud. Bu "Deyarli standartlar tartibi" deb ham nomlanadi.