Menggunakan Elemen DOCTYPE dalam Mod Kuasa

Biarkan Keluar Dokip untuk Meletakkan Pelayar ke dalam Quirks Mode

Sekiranya anda telah merancang laman web selama lebih daripada beberapa bulan, anda mungkin menyedari kesukaran menulis halaman yang kelihatan sama dalam semua pelayar . Pada hakikatnya, itu mustahil. Ramai penyemak imbas ditulis dengan ciri khas yang hanya boleh ditangani. Atau mereka mempunyai cara khas untuk mengendalikan perkara yang berbeza dari bagaimana penyemak imbas lain mengendalikannya. Sebagai contoh:

Masalah untuk pemaju penyemak imbas ialah mereka perlu membuat penyemak imbas web yang serasi dengan halaman web yang dibina untuk penyemak imbas yang lebih lama. Untuk menangani masalah ini, pembuat pembuat membuat mod untuk penyemak imbas berfungsi. Mod ini ditakrifkan oleh kehadiran atau ketiadaan elemen DOCTYPE dan panggilan yang DOCTYPE.

DOCTYPE Switching dan "Quirks Mode"

Jika anda meletakkan DOCTYPE berikut di halaman web anda:

Pelayar moden (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) akan mentafsirkan ini dengan cara berikut:

  1. Kerana terdapat DOCTYPE yang ditulis dengan betul, ini mencetuskan mod standard.
  2. Ia adalah dokumen HTML 4.01 Peralihan
  3. Kerana ia berada dalam mod standard, kebanyakan pelayar akan memberikan kandungan yang mematuhi (atau sebahagian besarnya mematuhi) dengan HTML 4.01 Peralihan

Dan jika anda meletakkan DOCTYPE ini dalam dokumen anda:

Ini memberitahu penyemak imbas moden bahawa anda ingin memaparkan halaman HTML 4.01 anda dengan pematuhan ketat dengan DTD.

Pelayar ini akan masuk ke mod "ketat" atau "standard" dan menjadikan halaman tersebut mematuhi piawaian. (Oleh itu, bagi dokumen ini, tag seperti mungkin sama sekali tidak diabaikan oleh penyemak imbas, kerana elemen FONT telah ditamatkan dalam HTML 4.01 Ketat.)

Jika anda meninggalkan DOCTYPE keluar sepenuhnya, pelayar secara automatik ditendang ke dalam mod "quirks".

Jadual di bawah menunjukkan apa yang pelayar umum lakukan apabila dibentangkan dengan deklarasi DOCTYPE biasa yang berbeza.

Microsoft Menjadikan Lebih Keras

Internet Explorer 6 juga mempunyai ciri yang jika anda meletakkan apa-apa di atas deklarasi DOCTYPE, mereka akan masuk ke mod quirks. Jadi, kedua-dua contoh ini akan meletakkan IE 6 dalam mod quirks, walaupun deklarasi DOCTYPE mengatakan dalam mod standard yang ketat:

dan XHTML 1.1 DOCTYPE:

Plus, jika anda melewati IE6, maka anda mempunyai "ciri" yang ditambahkan oleh Microsoft di IE8 dan IE9: pensuisan META dan senarai hitam laman web. Sebenarnya, kedua-dua versi penyemak imbas kini mempunyai sehingga tujuh (!) Mod yang berbeza:

IE 8 juga memperkenalkan "Mod Keserasian" di mana pengguna boleh memilih untuk menukar model rendering kembali ke mod IE 7. Jadi, walaupun anda menetapkan mod yang anda mahu tetapkan menggunakan elemen DOCTYPE dan META, halaman anda masih boleh ditolak kembali ke mod yang kurang patuh standard.

Apakah itu Quirks Mode?

Mod kuih telah dicipta untuk membantu menangani semua pelayar dan sokongan penyemak yang tidak patuh dan hacks yang digunakan oleh pereka web untuk menangani perkara tersebut. Kebimbangan pengeluar penyemak imbas adalah bahawa jika mereka menukar pelayar mereka ke pematuhan spesifikasi penuh, pereka web akan ditinggalkan.

Dengan menubuhkan switching DOCTYPE dan "Quirks Mode" ini membolehkan pereka web untuk memilih bagaimana mereka mahu penyemak imbas memberikan HTML mereka.

Kesan Mod Kuasa

Terdapat beberapa kesan yang digunakan oleh kebanyakan penyemak imbas dalam Mod Kuasa:

Terdapat juga perbezaan dalam "Mod Almost Standards:"

Bagaimana Pilih DOCTYPE

Saya pergi ke lebih terperinci dalam senarai DOCTYPE artikel saya, tetapi berikut adalah beberapa peraturan umum:

  1. Sentiasa pilih mod standard terlebih dahulu. Dan standard semasa yang anda gunakan ialah HTML5:
    Kecuali anda mempunyai sebab tertentu untuk mengelakkan penggunaan HTML5 DOCTYPE, inilah yang anda harus gunakan.
  2. Pergi ke HTML 4.01 yang ketat jika anda perlu mengesahkan elemen warisan atau ingin mengelakkan ciri-ciri baru untuk sebab tertentu:
  3. Sekiranya anda mempunyai gambar yang dihiris dalam jadual dan tidak mahu membetulkannya, pergi ke Peralihan HTML 4.01:
  4. Jangan tulis halaman dengan sengaja dalam mod quirks. Sentiasa gunakan DOCTYPE. Ini akan menjimatkan masa pembangunan pada masa akan datang, dan benar-benar tidak memberi manfaat. IE6 dengan cepat kehilangan populariti dan dengan merancang untuk pelayar ini (yang pada dasarnya merancang dalam mode quirks) anda membataskan diri, pembaca, dan halaman anda. Jika anda mesti menulis untuk IE 6 atau 7, kemudian gunakan komentar bersyarat untuk menyokongnya, bukan memaksa penyemak imbas moden menjadi mod quirks.

Kenapa Gunakan DOCTYPE

Sebaik sahaja anda menyedari perubahan jenis DOCTYPE ini, anda boleh menjejaskan halaman web anda dengan lebih lanjut dengan menggunakan DOCTYPE yang menunjukkan apa yang boleh dijangkakan penyemak imbas dari halaman anda. Juga, sebaik sahaja anda mula menggunakan DOCTYPE, anda akan menulis HTML yang lebih dekat untuk menjadi sah (anda masih perlu mengesahkannya). Dan dengan menulis XHTML yang sah, anda menggalakkan pembuat pelayar untuk membina pelayar yang mematuhi standard.

Versi Penyemak Imbas dan Mod Kuasa

DOCTYPE Android
Chrome
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Tiada Mod Kuasa Mod Kuasa Mod Kuasa
HTML 3.2
Mod Kuasa Mod Kuasa Mod Kuasa
HTML 4.01
Peralihan Mod Standard * Mod Standard * Mod Piawaian
Peralihan Mod Kuasa Mod Kuasa Mod Kuasa
Ketat Mod Piawaian Mod Standard * Mod Piawaian
Ketat Mod Piawaian Mod Standard * Mod Piawaian
HTML5
Mod Piawaian Mod Standard * Mod Kuasa
* Dengan DOCTYPE ini, pelayar hampir mematuhi piawaian, tetapi mempunyai beberapa isu-pastikan untuk diuji. Ini juga dikenali sebagai "Almost Standards Mode."