1. Mod pemaparan penyemak imbas dan doctype
Sesetengah halaman web dibuat mengikut piawaian, tetapi banyak yang tidak. Walaupun anda tidak boleh membuat halaman web yang mematuhi piawaian, anda masih mahu penyemak imbas memaparkan halaman tersebut dengan betul mengikut piawaian. Pada masa ini, sebilangan besar halaman web dipenuhi dengan banyak kod bukan standard, dan ia masih berfungsi seperti biasa. Malah, kebanyakan kod yang direka untuk penyemak imbas lama akan dipaparkan dengan betul dalam penyemak imbas baharu (walaupun pemaparan mungkin berbeza). Apakah sebab ini? Malah, mengikut piawaian terkini dengan tegas akan menjejaskan asas kewujudan halaman tersebut. Ini sudah tentu tidak boleh diterima untuk mana-mana pelayar yang berharap untuk membuat perubahan.
Mod pemaparan penyemak imbas
Penyemak imbas moden termasuk mod pemaparan berbeza yang direka untuk menyokong kedua-dua halaman web yang mematuhi piawaian dan halaman web yang direka untuk penyemak imbas yang lebih lama. Antaranya, mod Standard (iaitu, mod pemaparan ketat) digunakan untuk memaparkan halaman web yang mematuhi piawaian terkini, manakala mod Quirks (termasuk) (iaitu, mod pemaparan longgar atau mod keserasian) digunakan untuk memaparkan halaman web yang direka bentuk. untuk pelayar tradisional. Di samping itu, ambil perhatian bahawa Mozilla/Netscape 6 menambah mod Almost Standards baharu untuk menyokong halaman web yang direka bentuk untuk versi standard yang lebih lama.
Apakah pensuisan doctype?
Pengisytiharan doctype yang diletakkan di bahagian atas halaman web adalah kunci untuk memasukkan penyemak imbas ke dalam mod pemaparan yang betul. Penyemak imbas secara automatik beralih kepada mod pemaparan yang sesuai untuk memaparkan dengan betul jenis dokumen yang ditentukan oleh perisytiharan doctype.
Secara teori, ini sepatutnya merupakan suis yang sangat intuitif. Jika doctype menunjukkan bahawa halaman web semasa ialah dokumen yang mengikut standard (iaitu, HTML 4 atau XHTML 1), penyemak imbas akan bertukar kepada mod Standard. Jika doctype tidak ditentukan, atau HTML 3.2 dan versi yang lebih lama ditentukan, penyemak imbas bertukar kepada mod Quirks. Dengan cara ini, penyemak imbas boleh memaparkan dokumen yang mematuhi piawaian dengan betul tanpa meninggalkan halaman web yang lebih lama dan tidak standard sepenuhnya.
Masalah penukaran doctype
Walau bagaimanapun, penukaran doctype ialah penyelesaian yang tidak sempurna. Walaupun anda menggunakan pengisytiharan doctype dalam dokumen web, penyemak imbas mungkin tidak memaparkan halaman web dalam mod pemaparan yang anda jangkakan. Sebabnya adalah pelbagai rupa, termasuk doctype yang tidak betul dan permulaan yang berbeza bagi ), termasuk halaman web XHTML. Walau bagaimanapun, IE, Opera dan versi Safari yang lebih lama semuanya menjangkakan baris pertama dokumen itu sebagai pengisytiharan doctype. Jadi, jika terdapat perkara lain sebelum itu (termasuk prolog XML), doctype tidak akan dikenali. Oleh itu, kehadiran prolog XML meletakkan IE, Opera dan Safari ke dalam mod Quirks. Prolog XML tidak diperlukan, jadi anda boleh meninggalkannya dengan selamat dalam halaman XHTML. Nota: Pastikan anda memasukkan atribut charset dalam teg meta http-equiv untuk mengimbangi atribut pengekodan yang hilang dalam prolog XML.
URL tiada atau URL relatif:
Dalam pengisytiharan jenis dokumen yang lengkap, masukkan URL fail definisi jenis dokumen (DTD) yang sepadan. Jika URL tiada, atau laluan relatif ditentukan (bukannya alamat Internet yang layak sepenuhnya), kebanyakan penyemak imbas akan memasuki mod Quirks, tanpa mengira mod yang ditentukan oleh perisytiharan doctype.
Doktype yang tidak betul:
Penyemak imbas sangat sensitif terhadap bentuk dan format pengisytiharan doctype jika ia tidak dapat mengenali jenis dokumen yang tidak betul, ia akan dipaksa ke dalam mod Quirks (ini adalah untuk ini sebab , jadi kami mengesyorkan menyalin dan menampal jenis dokumen yang diketahui ke dalam dokumen dan bukannya menaip sendiri). Sebab biasa untuk jenis dokumen yang cacat ialah ruang yang tiada antara bahagian pertama jenis dokumen dan URL. Melipat doctype dua baris ke dalam satu baris selalunya kehilangan ruang.
Doctype semasa tempoh peralihan:
Apabila penyemak imbas mengendalikan doctype semasa tempoh peralihan, kemungkinan besar ketidakkonsistenan akan berlaku. IE dan Opera menggunakan mod Standard; Netscape 6 dan versi Safari yang lebih lama menggunakan mod Quirks;
Jenis dokumen tidak diketahui:
Terdapat juga ketidakkonsistenan apabila penyemak imbas mengendalikan jenis dokumen yang tidak dikenali. IE dan Opera akan memasuki mod Standard; dalam erti kata lain, ia menganggap bahawa doctype yang tidak diiktiraf adalah standard baharu yang belum disepadukan ke dalam penyemak imbas. Sebaliknya, Netscape 6 akan bertukar kepada mod Quirks apabila ia menemui doctype yang tidak dikenali.
Penukaran Doctype mungkin merupakan cara yang berkesan untuk memasukkan penyemak imbas ke dalam mod pemaparan yang betul dan memaparkan halaman web dengan betul, dengan syarat anda melihat ketidakkonsistenan dalam pelbagai penyemak imbas dan secara proaktif boleh mengelakkan pelbagai masalah.
2. Gunakan pengisytiharan doctype yang betul
Kami biasanya mengabaikan perkara ini apabila membuat halaman (termasuk saya, saya biasanya terlalu malas untuk tidak menulis dan menggunakan lalai penyemak imbas Dengan peningkatan semasa penyeragaman pengekodan halaman web, adalah perlu untuk semua orang memahami kehendak Butiran ini). menjadi berguna. Bak kata pepatah, tiada peraturan tanpa peraturan.
Walaupun kebanyakan dokumen web mempunyai pengisytiharan doctype di bahagian atas, ramai orang tidak mempedulikannya. Ini adalah salah satu daripada banyak butiran yang dikendalikan oleh perisian pengarangan web secara selamba apabila anda membuat dokumen baharu. Walaupun doctype diabaikan oleh ramai, ia merupakan elemen yang diperlukan dalam mana-mana dokumen web yang mematuhi piawaian. Doctype menjejaskan pengesahan kod dan menentukan cara penyemak imbas akhirnya memaparkan dokumen web anda.
Peranan doctype
Pengisytiharan doctype menunjukkan set peraturan yang perlu digunakan oleh program bacaan untuk mentafsir penanda dalam dokumen. Dalam kes dokumen Web, "pembaca" biasanya merupakan program seperti penyemak imbas atau pengesah, dan "peraturan" ialah peraturan yang terkandung dalam Definisi Jenis Dokumen (DTD) yang diterbitkan oleh W3C.
Setiap DTD termasuk satu siri teg, atribut dan sifat yang digunakan untuk menandakan kandungan dokumen Web, ia juga termasuk peraturan yang menentukan teg yang boleh muncul dalam teg lain; Setiap standard web yang dicadangkan (seperti HTML 4 Frameset dan XHTML 1.0 Transitional) mempunyai DTD sendiri. Jika penanda dalam dokumen tidak mengikut DTD yang ditentukan oleh perisytiharan doctype, dokumen itu mungkin tidak lulus pengesahan kod dan mungkin tidak dipaparkan dengan betul dalam penyemak imbas. Penyemak imbas lebih memaafkan daripada pengesah dalam hal ketidakkonsistenan markup. Walau bagaimanapun, pengisytiharan doctype yang salah sering menyebabkan halaman web dipaparkan dengan tidak betul, atau menyebabkannya tidak dipaparkan sama sekali.
Pilih doctype yang betul
Untuk mendapatkan pengisytiharan jenis dokumen yang betul, kuncinya adalah untuk menjadikan DTD sepadan dengan piawaian yang diikuti oleh dokumen. Sebagai contoh, dengan mengandaikan dokumen mengikut piawaian XHTML 1.0 Strict, pengisytiharan jenis dokumen dokumen harus merujuk kepada DTD yang sepadan. Sebaliknya, jika pengisytiharan doctype menyatakan XHTML DTD, tetapi dokumen itu mengandungi penanda HTML gaya lama, adalah tidak sesuai, jika pengisytiharan doctype menentukan HTML DTD, tetapi dokumen itu mengandungi XHTML 1.0 Strict markup , adalah juga; tidak sesuai.
Kadangkala, tidak perlu menggunakan pengisytiharan doctype sama sekali. Jika tiada pengisytiharan jenis dokumen yang sah dinyatakan, kebanyakan penyemak imbas akan menggunakan DTD lalai terbina dalam. Dalam kes ini, penyemak imbas akan menggunakan DTD terbina dalam untuk cuba memaparkan teg yang anda tentukan. Untuk sesetengah ad hoc, tergesa-gesa menyatukan dokumen (yang terdapat banyak), anda mungkin mempertimbangkan untuk meninggalkan perisytiharan doctype dan menerima paparan lalai penyemak imbas.
Anda boleh menulis perisytiharan doctype dari awal dan biarkan ia menunjuk kepada DTD pilihan anda. Walau bagaimanapun, memandangkan kebanyakan dokumen web perlu mematuhi salah satu piawaian web yang diiktiraf di peringkat antarabangsa yang diterbitkan oleh W3C, dokumen tersebut biasanya mengandungi salah satu daripada pengisytiharan jenis dokumen standard berikut:
HTML 2:
HTML 3.2:HTML 4.01 Strict: "> HTML 4.01 Peralihan: ">
HTML 4.01 Frameset:http://www.w3.org/TR/html4/frameset .dtd">
XHTML 1.0 Strict:http://www.w3.org/TR/xhtml1/DTD /xhtml1-strict.dtd">
XHTML 1.0 Transitional:http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">
XHTML 1.0 Frameset:http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">
XHTML 1.1:http://www.w3.org/TR/xhtml11/DTD/xhtml11 .dtd">
XHTML 1.1 plus MathML plus SVG:http://www.w3 .org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
除了上面列出的doctype声明,具有特殊要求的一些文档还使用了其他几种>声几种>。 doctype jenis的前面偶尔会出现一条XML处理指令(也称为Prolog XML) :
为了确保网页正确显示和顺利通过验证,使用正确的doctype是关键。与与囅的管家或者形式错误的doctype是大量问题的罪魁祸首。
用DW设计网页时,新建一个文件,看代码最前面总要出现一个下一个文件,看代码最前面总要出现一个下面,个下面,个下面,下面,下面! /W3C//DTD HTML 4.01 Peralihan//EN" "
http://www.w3.org/TR/html4/loose.dtd "> 打开一些符合标准的站点,例如著名web设计软件开发商 Macromedia ,设计大帎猫一大帎猫一大帎样的代码。而另一些符合标准的站点(例如 k10k.net )的代码则如下:
http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">br>。完整代码如下:
!DOCTYPE">http://www.w3.org/TR/ xhtml1/DTD/xhtml1-strict.dtd">!DOCTYPE
">这个是DW自动在网页文件页增加了DTD,刏文件页增加了DTD,刯是。后,浏览器会使用的默认DTD。三、选择什么样的DOCTYPE
开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE>。
查看本页原代码,可以看到第一行就是: