Beberapa halaman web dibuat sesuai dengan standar, tetapi ada juga banyak yang tidak. Bahkan jika Anda tidak dapat membuat halaman web yang mengikuti standar, Anda ingin browser menampilkan halaman -halaman itu dengan benar sesuai dengan standar. Saat ini, sejumlah besar halaman web diisi dengan banyak kode non-standar, dan mereka masih berfungsi dengan baik. Faktanya, sebagian besar kode yang dirancang untuk browser yang lebih lama akan ditampilkan dengan benar di browser yang lebih baru (meskipun mungkin ada perbedaan dalam cara diberikan). Apa alasan ini? Faktanya, secara ketat mengikuti standar terbaru akan sepenuhnya merusak dasar kelangsungan hidup dari halaman -halaman itu. Ini tentu tidak dapat diterima untuk browser apa pun yang ingin membuat perbedaan.
Mode Rendering Browser
Browser modern mencakup mode rendering yang berbeda, dengan tujuan mendukung kedua halaman web yang mengikuti standar dan halaman web yang dirancang untuk browser yang lebih lama. Di antara mereka, mode standar (yaitu, mode presentasi yang ketat) digunakan untuk menyajikan halaman web yang mengikuti standar terbaru, sedangkan mode quirks (yaitu, mode presentasi longgar atau mode kompatibilitas) digunakan untuk menyajikan halaman web yang dirancang untuk browser tradisional. Juga, perhatikan bahwa Mozilla/Netscape 6 telah menambahkan mode standar hampir untuk mendukung halaman web yang dirancang untuk versi standar yang lebih lama.
Apa itu sakelar Doctype?
Deklarasi Doctype yang ditempatkan di bagian atas halaman web adalah kunci untuk memasukkan browser ke mode rendering yang benar. Browser secara otomatis beralih ke mode rendering yang sesuai untuk menampilkan dengan benar jenis dokumen yang ditentukan oleh deklarasi Doctype.
Secara teori, ini harus menjadi saklar yang sangat intuitif. Jika Doctype menunjukkan bahwa halaman web saat ini adalah dokumen yang sesuai dengan standar (yaitu HTML 4+ atau XHTML 1+), browser akan beralih ke mode standar. Jika DOCTYPE tidak ditentukan, atau HTML 3.2 dan versi yang lebih lama ditentukan, browser beralih ke mode Quirks. Dengan cara ini, browser dapat menampilkan dokumen yang mengikuti standar dengan benar tanpa sepenuhnya meninggalkan halaman web kuno yang tidak sesuai dengan standar.
Masalah switching Doctype
Namun, switching Doctype adalah solusi yang tidak lengkap. Bahkan jika Anda menggunakan deklarasi Doctype di dokumen web Anda, browser tidak dapat mengambil mode rendering yang ingin Anda tampilkan di halaman web. Ada banyak alasan, termasuk doctype dari bentuk yang salah, dan awal yang berbeda dari <? Xml Version = 1.0 Encoding = UTF-8?>) Yang termasuk halaman web XHTML. Namun, IE, Opera, dan versi Safari yang lebih lama semua menginginkan baris pertama dari dokumen tersebut menjadi deklarasi Doctype. Jadi, jika ada hal lain sebelum itu (termasuk XML Prolog), Doctype tidak dikenali. Oleh karena itu, keberadaan Prolog XML akan membawa IE, Opera, dan Safari ke mode Quirks. XML Prolog tidak diperlukan, sehingga Anda dapat dengan aman menghilangkannya di halaman web XHTML. CATATAN: Pastikan untuk memasukkan atribut charset dalam tag meta http-equiv untuk menebus atribut pengkodean yang hilang dalam prolog XML.
URL yang hilang atau URL relatif:
Dalam deklarasi Doctype lengkap, sertakan URL dari file Definisi Jenis Dokumen (DTD) yang sesuai. Jika URL hilang, atau jika ditentukan, jalur relatif (bukan alamat internet yang sepenuhnya memenuhi syarat), sebagian besar browser akan memasuki mode quirks, terlepas dari mode yang ditentukan oleh deklarasi Doctype.
Doctype dari bentuk yang salah:
Browser sangat sensitif terhadap bentuk dan format deklarasi Doctype, dan jika bentuk yang salah Doctype tidak dapat dikenali, itu akan memaksa ke dalam mode quirks (untuk alasan ini, kami merekomendasikan untuk menyalin dan menempelkan dokter yang diketahui yang diketahui ke dalam dokumen alih -alih mengetiknya secara langsung). Alasan umum untuk Form Kesalahan Doctype adalah bahwa ruang hilang antara bagian pertama dari Doctype dan URL. Runtuhnya seorang dokter dibagi menjadi dua garis menjadi satu baris, dan ruang itu akan sering hilang.
Dokter Periode Transisi:
Ketika browser menangani doctype periode transisi, kemungkinan besar memiliki masalah yang tidak konsisten. IE dan Opera Gunakan Mode Standar; Netscape 6 dan versi yang lebih lama dari Safari menggunakan mode quirks; Netscape 7, Mozilla 1 dan versi Safari yang lebih baru menggunakan mode Netscape hampir standar, yang merupakan versi mode standar yang lebih toleran terhadap kesalahan.
DOCTYPE Tidak Dikenal:
Ada juga ketidakkonsistenan ketika browser menangani dokter yang tidak diakui. Yaitu dan opera akan memasuki mode standar; Dengan kata lain, ia mengasumsikan bahwa Doctype yang tidak diakui adalah standar baru yang belum diintegrasikan dalam browser. Sebaliknya, Netscape 6 akan beralih ke mode Quirks saat bertemu dengan dokter yang tidak diakui.
Pergantian Doctype mungkin merupakan cara yang efektif untuk membuat browser memasukkan mode rendering yang benar dan menampilkan halaman web dengan benar, asalkan Anda melihat ketidakkonsistenan di berbagai browser dan dapat secara aktif menghindari berbagai masalah.
2. Gunakan deklarasi Doctype yang benarKita mungkin mengabaikan ini saat membuat halaman (termasuk saya, saya biasanya malas untuk tidak menulis dan menggunakan browser default). Dengan kedatangan kegemaran saat ini untuk standardisasi pengkodean halaman web, perlu bagi semua orang untuk memahami detail ini, yang akan berguna. Seperti kata pepatah, tidak ada perintah tanpa aturan.
Sementara sebagian besar dokumen web memiliki deklarasi Doctype di atas, banyak orang tidak memperhatikannya. Ini adalah salah satu dari banyak detail yang ceroboh dengan perangkat lunak penulisan web saat Anda membuat dokumen baru. Sementara Doctype diabaikan oleh banyak orang, itu adalah elemen yang diperlukan dalam dokumen web apa pun yang mengikuti standar. Doctype memengaruhi verifikasi kode dan menentukan bagaimana browser pada akhirnya menampilkan dokumentasi web Anda.
Peran Doctype
Pernyataan Doctype menunjukkan set aturan apa yang harus digunakan oleh pembaca untuk menafsirkan tag dalam dokumen. Dalam hal dokumen web, program membaca biasanya merupakan program seperti browser atau perangkat verifikasi, dan aturannya adalah aturan yang terkandung dalam definisi tipe dokumen (DTD) yang diterbitkan oleh W3C.
Setiap DTD menyertakan serangkaian tag, atribut, dan properti yang digunakan untuk menandai konten dokumen web; dan juga termasuk aturan yang menentukan tag mana yang dapat muncul di mana tag lainnya. Setiap standar yang disarankan web (seperti html 4 frameset dan transisi xhtml 1.0) memiliki DTD sendiri. Jika tag dalam dokumen tidak mengikuti DTD yang ditentukan oleh deklarasi Doctype, dokumen tersebut tidak dapat ditampilkan dengan benar di browser selain tidak menyampaikan verifikasi kode. Browser lebih toleran daripada perangkat verifikasi untuk masalah markup yang tidak konsisten. Namun, deklarasi Doctype yang salah sering menyebabkan halaman web ditampilkan secara tidak benar, atau menyebabkannya tidak ditampilkan sama sekali.
Pilih Doctype yang benar
Untuk mendapatkan deklarasi Doctype yang benar, kuncinya adalah membuat DTD sesuai dengan standar yang diikuti oleh dokumen. Misalnya, dengan asumsi bahwa dokumen mengikuti standar XHTML 1.0 yang ketat, deklarasi dokumen dokumen harus merujuk pada DTD yang sesuai. Di sisi lain, tidak tepat jika deklarasi Doctype menentukan XHTML DTD tetapi dokumen tersebut berisi tag HTML gaya lama; Demikian pula, juga tidak tepat jika deklarasi Doctype menentukan HTML DTD tetapi dokumen tersebut berisi tag ketat XHTML 1.0.
Terkadang, Anda tidak dapat menggunakan deklarasi Doctype sama sekali. Jika tidak ada deklarasi Doctype yang valid yang ditentukan, sebagian besar browser akan menggunakan DTD default bawaan. Dalam hal ini, browser akan menggunakan DTD bawaan untuk mencoba menampilkan tag yang Anda tentukan. Untuk beberapa dokumen sementara dan tergesa -gesa (ada banyak dari mereka), Anda memang dapat mempertimbangkan menghilangkan deklarasi Doctype dan menerima tampilan default browser.
Sangat mungkin untuk menulis deklarasi Doctype dari awal dan membiarkannya menunjuk ke DTD pilihan Anda. Namun, karena sebagian besar dokumen Web perlu mengikuti standar web yang diakui secara internasional yang diterbitkan oleh W3C, dokumen -dokumen tersebut biasanya berisi salah satu deklarasi Doctype Standar berikut:
Html 2: <! Doctype html public -// ietf // dtd html 2.0 // en>
Html 3.2: <! Doctype html public -// w3c // dtd html 3.2 final // en>
Html 4.01 ketat: <! Doctype html public -// w3c // dtd html 4.01 // en http://www.w3.org/tr/html4/strict.dtd>
Html 4.01 Transisi: <! Doctype html public -// w3c // dtd html 4.01 transisi // en http://www.w3.org/tr/html4/loose.dtd>
Html 4.01 frameset: <! Doctype html public -// w3c // dtd html 4.01 frameset // en http://www.w3.org/tr/html4/frameset.dtd>
Xhtml 1.0 ketat: <! Doctype html public -// w3c // dtd xhtml 1.0 strict // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>
Xhtml 1.0 Transisi: <! Doctype html public -// w3c // dtd xhtml 1.0 transisi // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
Xhtml 1.0 frameset: <! Doctype html public -// w3c // dtd xhtml 1.0 frameset // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>
Xhtml 1.1: <! Doctype html public -// w3c // dtd xhtml 1.1 // en http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd>
XHTML 1.1 Plus Mathml Plus SVG: <! Doctype html public-// w3c // dtd xhtml 1.1 plus mathml 2.0 plus svg 1.1//en http://www.w3.org/2002/04/xhtml-svg/www3.org/2002/04/xhtml-shath-svg/xhtml-sv.
Selain deklarasi Doctype yang tercantum di atas, beberapa dokumen dengan persyaratan khusus menggunakan beberapa deklarasi lainnya.
Deklarasi Doctype biasanya merupakan baris pertama dari dokumen, sebelum tag <Html> dan konten dokumen lainnya. Perhatikan bahwa dalam dokumen XHTML, instruksi pemrosesan XML (juga dikenal sebagai XML Prolog) muncul sesekali di depan Doctype: <? Versi XML = 1.0 Encoding = UTF-8?>
Untuk memastikan bahwa halaman web ditampilkan dengan benar dan melewati verifikasi dengan lancar, menggunakan doctype yang benar adalah kunci. Dokter yang berlawanan, salah atau tidak benar dalam bentuk adalah penyebab sejumlah besar masalah.
Saat merancang halaman web dengan DW, buat file baru dan lihat bahwa selalu ada sesuatu di bawah di bagian depan kode.
<! Doctype html public -// w3c // dtd html 4.01 transisi // en http://www.w3.org/tr/html4/loose.dtd> Ini adalah DW yang secara otomatis menambahkan informasi DTD ke halaman file halaman web, yang dapat dihapus. Setelah dihapus, browser akan menggunakan DTD default.
3. Dokter jenis apa yang harus dipilih
Saat Anda mulai membuat situs yang memenuhi standar, hal pertama yang Anda lakukan adalah menyatakan sebuah dokter yang memenuhi kebutuhan Anda.
Periksa kode asli halaman ini dan Anda dapat melihat bahwa baris pertama adalah: <! Doctype html public -// w3c // dtd xhtml 1.0 transisi // en http://www.w3.org/trtd1/dtd/xhtml1-transitional.dtd>
Buka beberapa situs yang memenuhi standar, seperti situs web pribadi pengembang perangkat lunak desain web terkenal Macromedia dan Design Master Zeldman, dan Anda akan menemukan kode yang sama. Kode untuk situs lain yang memenuhi standar (seperti k10k.net) adalah sebagai berikut:
<! Doctype html public -// w3c // dtd xhtml 1.0 frameset // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>!doctype html publik -// w3c/w3c //dtd> http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd> br>. Kode lengkapnya adalah sebagai berikut:
<! Doctype html public -// w3c // dtd xhtml 1.0 transitional // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd> !dtyctype html public -// W3C // DTDD>! http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>
Jenis dokter jenis apa yang harus kita pilih
Situasi yang ideal tentu saja merupakan DTD yang ketat, tetapi bagi sebagian besar dari kita desainer yang baru dalam standar web, transisi DTD (XHTML 1.0 transisi) saat ini merupakan pilihan yang ideal (termasuk situs ini, yang juga menggunakan DTD transisi). Karena DTD ini juga memungkinkan kita untuk menggunakan identitas, elemen, dan atribut dari lapisan presentasi, juga lebih mudah untuk lulus verifikasi kode W3C. Catatan: Logo dan atribut dari lapisan presentasi yang disebutkan di atas merujuk pada tag yang murni digunakan untuk mengontrol kinerja, seperti tabel untuk pengaturan huruf, tanda warna latar, dll. Dalam xhtml, identitas digunakan untuk mewakili struktur, bukan untuk mengimplementasikan ekspresi. Transisi kami adalah pada akhirnya memisahkan data dan representasi.
Misalnya: model telanjang mengganti pakaian. Model seperti data, dan pakaian dimanifestasikan dalam bentuk, dan model serta pakaian dipisahkan, sehingga Anda dapat mengganti pakaian sesuka hati. Ternyata di HTML4, data dan kinerja dicampur bersama, dan sangat sulit untuk mengubah bentuk ekspresi pada satu waktu. Haha, ini agak abstrak, dan kita perlu secara bertahap memahami konsep ini selama proses aplikasi.
Mengisi kembali
Deklarasi Doctype harus ditempatkan di bagian atas setiap dokumen XHTML, di atas semua kode dan identitas.
4. Beginilah pejabat mendefinisikan Doctype HTML Public! Doctype
--------------------------------------------------------------------------------
Menentukan definisi tipe dokumen (DTD) yang diikuti oleh dokumen HTML.
Baru di Microsoft? Internet Explorer 6. Anda dapat menggunakan pernyataan ini untuk beralih Internet Explorer 6 dan yang lebih baru ke mode kompatibilitas standar.
tata bahasa
HTML Registrasi Ketersediaan Elemen Top
Nilai yang mungkin
Elemen tingkat atas: Menentukan jenis elemen tingkat atas yang dinyatakan dalam DTD. Ini sesuai dengan jenis dokumen SGML yang dinyatakan. HTML default. Html.
Ketersediaan: Menentukan apakah pengidentifikasi publik resmi (FPI) adalah objek atau sumber daya sistem yang dapat diakses secara publik. Default publik. Objek yang dapat diakses secara publik. Sumber daya sistem, seperti file atau URL lokal.
Pendaftaran: Tentukan apakah organisasi tersebut terdaftar oleh Organisasi Internasional untuk Standardisasi (ISO). + Default. Nama Organisasi Terdaftar. - Nama organisasi tidak terdaftar. Gugus Tugas Rekayasa Internet (IETF) dan World Wide Web Association (W3C) bukan organisasi ISO terdaftar.
Organisasi: Menentukan nama kelompok atau organisasi yang menunjukkan penciptaan dan pemeliharaan DTD yang dirujuk oleh Deklarasi Dokter! IETF IETF. W3C W3C.
Jenis: Menentukan kelas teks publik, yaitu jenis objek yang dirujuk. DTD default. Dtd.
Tag: Menentukan deskripsi teks publik, yaitu nama deskriptif yang unik untuk teks publik yang dikutip. Nomor versi dapat dimasukkan nanti. HTML default. Html.
Definisi: Tentukan definisi tipe dokumen. Dokumentasi frameset frameset. Ketat tidak termasuk semua atribut dan elemen yang representatif yang ingin diadili oleh para ahli W3C, karena lembaran gaya sudah sempurna. Transisi berisi semua konten kecuali elemen frameset.
Bahasa: Menentukan bahasa teks publik, yaitu, sistem pengkodean bahasa alami yang digunakan untuk membuat objek yang direferensikan. Definisi bahasa telah ditulis sebagai kode bahasa ISO 639 (Capital Two Letters). En default. Bahasa inggris.
URL: Menentukan lokasi objek yang direferensikan.
Komentar
Deklarasi ini harus muncul di awal dokumen, sebelum tag HTML.
! Elemen Doctype tidak perlu menutup tag.
Elemen ini tersedia dalam HTML untuk Microsoft? Internet Explorer 3.0.
Anda dapat menggunakan deklarasi ini untuk beralih ke mode kompatibilitas standar yang ketat di Internet Explorer 6 dan yang lebih baru. Untuk menyalakan sakelar ini, sertakan deklarasi Doctype di bagian atas dokumen Anda, menentukan label hukum dalam deklarasi, dan dalam beberapa kasus, definisi dan/atau URL juga diperlukan.
Catatan dalam mode kompatibilitas standar, kompatibilitas dengan versi lain dari Internet Explorer tidak dapat dijamin. Ketika mode kompatibilitas standar dihidupkan, perilaku rendering dokumen mungkin berbeda dari versi Internet Explorer di masa depan. Jika konten awalnya diperbaiki (seperti dibakar pada CD), mode ini tidak boleh digunakan.
Contoh
Contoh berikut menunjukkan cara menggunakan! Deklarasi Doctype Menentukan DTD yang menurut dokumen itu memuaskan dan beralih Internet Explorer 6 dan yang lebih baru ke mode kompatibilitas standar. Deklarasi dalam contoh -contoh berikut menentukan kepatuhan HTML 4.0 DTD. Deklarasi kedua menentukan ketat. Deklarasi pertama tidak ditentukan. Kedua pernyataan akan beralih Internet Explorer 6 dan lebih baru ke mode kompatibilitas standar.
<! Doctype html public -// w3c // dtd html 4.0 // en>
<! Doctype html public -// w3c // dtd html 4.0 strict // en>
Deklarasi dalam contoh -contoh berikut menentukan kepatuhan DTD dengan TransitionalHTML 4.0. Deklarasi kedua menentukan URL DTD. Deklarasi pertama tidak ditentukan. Pernyataan kedua akan beralih Internet Explorer 6 dan lebih baru ke mode kompatibilitas standar. Pernyataan pertama tidak.
<! Doctype html public -// w3c // dtd html 4.0 transisi // en>
<! Doctype html public -// w3c // dtd html 4.0 transisi // en
http://www.w3.org/tr/html4/loose.dtd>