Rumah >hujung hadapan web >html tutorial >Penjelasan terperinci tentang fungsi dan penggunaan DOCTYPE declaration_HTML/Xhtml_Web page production

Penjelasan terperinci tentang fungsi dan penggunaan DOCTYPE declaration_HTML/Xhtml_Web page production

WBOY
WBOYasal
2016-05-16 16:41:301660semak imbas

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:

http://www.w3.org/TR/html4/strict. dtd"> HTML 4.01 Peralihan:

http://www.w3.org/TR/html4/loose .dtd">

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
">这个是DW自动在网页文件页增加了DTD,刏文件页增加了DTD,刯是。后,浏览器会使用的默认DTD。三、选择什么样的DOCTYPE
      开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE>。       查看本页原代码,可以看到第一行就是:

">

      打开一些符合标准的站点,例如著名web设计软件开发商 Macromedia ,设计大帎猫一大帎猫一大帎样的代码。而另一些符合标准的站点(例如 k10k.net )的代码则如下: !DOCTYPE">http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">!DOCTYPE

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

br">

http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">br>。完整代码如下:  !DOCTYPE">http://www.w3.org/TR/ xhtml1/DTD/xhtml1-strict.dtd">!DOCTYPE

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "


http://www. w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Apa DOCTYPE yang kita pilih
Situasi yang ideal sudah tentu DTD yang ketat, tetapi bagi kebanyakan kita pereka yang baru kepada standard web, DTD peralihan (XHTML 1.0 Transitional) ialah The pilihan ideal semasa (termasuk tapak ini, yang juga menggunakan DTD peralihan). Oleh kerana DTD ini juga membenarkan kami menggunakan pengecam lapisan pembentangan, elemen dan atribut, ia juga lebih mudah untuk lulus pengesahan kod W3C. Nota: "Pengenalpastian dan atribut lapisan pembentangan" yang disebut di atas merujuk kepada teg yang digunakan semata-mata untuk mengawal prestasi, seperti jadual untuk tetapan taip, pengenalan warna latar belakang, dsb. Dalam XHTML, tag digunakan untuk mewakili struktur, bukan untuk mencapai pembentangan Tujuan peralihan kami adalah untuk memisahkan data dan pembentangan.

Contohnya: peragawati menukar pakaian. Model itu seperti data, dan pakaian adalah bentuk ekspresi Model dan pakaian dipisahkan, jadi anda boleh menukar pakaian sesuka hati. Dalam HTML4 asal, data dan pembentangan bercampur bersama, dan sangat sukar untuk menukar borang pembentangan sekaligus. Haha, ia agak abstrak Konsep ini perlu difahami secara beransur-ansur semasa proses permohonan.

Tambahan
Pengisytiharan DOCTYPE mesti diletakkan di bahagian atas setiap dokumen XHTML, di atas semua kod dan penanda.

4 Beginilah definisi rasmi DOCTYPE HTML PUBLIC adalah

!DOCTYPE

------------------------------------------------ --- -----------------------------------

Menentukan definisi jenis dokumen (DTD) yang diikuti oleh dokumen HTML.

Microsoft® Baharu dalam Internet Explorer 6. Anda boleh menggunakan pernyataan ini untuk menukar Internet Explorer 6 dan kemudian kepada mod keserasian standard.

Tatabahasa

Ketersediaan Elemen Teratas HTML "Pendaftaran//Organisasi//Teg Jenis//Bahasa Definisi" "URL"

Nilai yang mungkin

Elemen peringkat atas: Menentukan jenis elemen peringkat atas yang diisytiharkan dalam DTD. Ini sepadan dengan jenis dokumen SGML yang diisytiharkan. lalai HTML. HTML.

Ketersediaan: Menentukan sama ada Pengecam Awam Rasmi (FPI) ialah objek yang boleh diakses secara umum atau sumber sistem. Lalai AWAM. Objek boleh diakses secara umum. SISTEM Sumber sistem, seperti fail atau URL tempatan.

Pendaftaran: Sama ada organisasi yang dinyatakan didaftarkan oleh Pertubuhan Antarabangsa untuk Standardisasi (ISO). lalai. Nama organisasi telah didaftarkan. - Nama organisasi tidak didaftarkan. Pasukan Petugas Kejuruteraan Internet (IETF) dan World Wide Web Consortium (W3C) bukan organisasi ISO berdaftar.

Organisasi: Nyatakan nama kumpulan atau organisasi yang bertanggungjawab untuk penciptaan dan penyelenggaraan DTD yang dirujuk oleh pengisytiharan !DOCTYPE, iaitu ID Pemilik. IETF IETF. W3C W3C.

Jenis: Tentukan kelas teks awam, iaitu jenis objek yang dirujuk. lalai DTD. DTD.

Teg: Tentukan perihalan teks awam, iaitu nama deskriptif unik untuk teks awam yang dirujuk. Nombor versi boleh dilampirkan di bahagian belakang. lalai HTML. HTML.

Definisi: Tentukan definisi jenis dokumen. Frameset Frameset dokumentasi. Strict mengecualikan semua atribut perwakilan dan elemen yang pakar W3C mahu dihentikan secara berperingkat kerana helaian gaya sudah mantap. Peralihan mengandungi segala-galanya kecuali elemen frameSet.

Bahasa: Menentukan bahasa teks awam, sistem pengekodan bahasa semula jadi yang digunakan untuk mencipta objek yang dirujuk. Definisi bahasa telah ditulis sebagai kod bahasa ISO 639 (dua huruf besar). EN lalai. Inggeris.

URL

: Menentukan lokasi objek yang dirujuk.

Nota

Pengisytiharan ini mesti dipaparkan pada permulaan dokumen, sebelum teg html.

Elemen !DOCTYPE tidak memerlukan tag penutup.

Elemen ini tersedia dalam HTML dalam Microsoft® Internet Explorer 3.0.

Anda boleh menggunakan pernyataan ini untuk beralih kepada mod keserasian standard yang ketat dalam Internet Explorer 6 dan lebih baru. Untuk menghidupkannya, sertakan pengisytiharan !DOCTYPE di bahagian atas dokumen anda, menyatakan teg undang-undang dan, dalam beberapa kes, takrifan dan/atau URL.

Nota: Dalam mod keserasian standard, keserasian dengan versi Internet Explorer yang lain tidak dijamin. Apabila mod keserasian standard dihidupkan, gelagat pemaparan dokumen mungkin berbeza daripada versi Internet Explorer yang akan datang. Mod ini tidak boleh digunakan jika kandungan sememangnya tetap (seperti dibakar pada CD).

Contoh

Das folgende Beispiel zeigt, wie Sie mit der !DOCTYPE-Deklaration die DTD angeben, der das Dokument entspricht, und Internet Explorer 6 und höher in den Standardkompatibilitätsmodus schalten. Die Deklarationen in den folgenden Beispielen geben alle die Einhaltung der HTML 4.0-DTD an. Die zweite Deklaration gibt „Streng“ an. Der erste Anweisungstyp ist nicht spezifiziert. Beide Ankündigungen werden Internet Explorer 6 und höher in den Standardkompatibilitätsmodus versetzen.


;

Die Deklarationen in den folgenden Beispielen geben alle die Einhaltung der „Transitional“ HTML 4.0 DTD an. Die zweite Deklaration gibt die URL der DTD an. Der erste Anweisungstyp ist nicht spezifiziert. Die zweite Anweisung schaltet Internet Explorer 6 und höher in den Standardkompatibilitätsmodus. Die erste Aussage tut es nicht.


 "
http://www.w3.org/TR/html4/loose.dtd"

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn