<!DOCTYPE html> nedir
<!DOCTYPE html> doctype bildirimidir: bir HTML dosyasının <html> etiketinden önce gelen ilk satırı. Tarayıcıya "bu modern bir HTML belgesi" der, tarayıcı da sayfayı güncel HTML ve CSS spesifikasyonlarına uyarak standart modda gösterir.
HTML5 doctype'ın tamamı bu tek satırdır. Kapanış etiketi yoktur ve içine başka bir şey yazılmaz.
Sözdizimi kuralları
- En başta gelir. Ondan önce yalnızca boşluk ve yorum olabilir. Doctype'tan önce gelen herhangi bir metin ya da etiket, tarayıcının onu yok saymasına yol açar.
- Büyük küçük harfe duyarlı değildir.
<!DOCTYPE html>ile<!doctype html>aynıdır. Bir yazım seç ve ona bağlı kal. - Bir element değildir.
</!DOCTYPE>diye bir şey yoktur ve onaclassya da başka bir özellik ekleyemezsin. - DOCTYPE'tan sonraki kelime
htmlolmalı.<!DOCTYPE html5>daha yeni bir sürüm değildir; tarayıcı o sayfayı geçerli bir doctype'ı yokmuş gibi ele alır. - Belge başına bir tane. Birkaç dosyadan (şablonlar, include'lar) oluşturulan sayfalar da son HTML'in en üstünde tek bir doctype üretir.
Standart mod ve quirks modu
Tarayıcıların üç görüntüleme modu vardır ve doctype bunlardan birini seçer:
| Mod | Neyle tetiklenir | Ne değişir |
|---|---|---|
| Standart mod | <!DOCTYPE html> ve diğer modern doctype'lar | Her şey güncel spesifikasyonlara uyar |
| Sınırlı quirks modu | URL'li HTML 4.01 Transitional ya da Frameset, XHTML 1.0 Transitional ya da Frameset | Neredeyse standart: yalnızca bir satır yüksekliği kuralı farklıdır, bu yüzden bir satırda tek başına duran bir resmin (genellikle bir tablo hücresinde) altında boşluk kalmaz |
| Quirks modu | Doctype yok, yanlış yazılmış ya da URL'siz HTML 4.01 Transitional gibi bazı eski doctype'lar | 1990'ların tarayıcılarını taklit eder: yüzde yükseklikler, tablo yazı boyutu ve satır yükseklikleri farklı davranır |
Quirks modu, web standartlarından önce yazılmış sayfaların yazarlarının gördüğü gibi görünmeye devam etmesi için vardır. Yeni sayfalarda ise yalnızca sorun çıkarır: bir sayfada çalışıp diğerinde çalışmayan bir height: 100% ya da yazı boyutunu yok sayan tablolar, eksik doctype'ın klasik belirtileridir.
Bu sayfadaki editör önizlemeleri her zaman standart modda çalışır, bu yüzden oradaki doctype'ı silmek sana quirks modunu göstermez. Aşağıdaki denetleyici DOMParser kullanır; bu da tarayıcıların bir dosyayı yüklerken uyguladığı kuralların aynısını uygular. Metin kutusundaki doctype'ı düzenle, mod anında güncellenir:
Satırı silmeyi, <!DOCTYPE html5> yazmayı ya da doctype'ın önüne bir kelime koymayı dene: her biri sonucu quirks moduna çevirir.
Eski doctype'lar: HTML 4.01 ve XHTML
HTML5'ten önce doctype, uzun bir public identifier ile bir DTD dosyasını belirtirdi. Eski sitelerin en üstünde bunlara hâlâ rastlarsın:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Tarayıcılar bu DTD dosyalarını hiçbir zaman indirmedi. Identifier'ı yalnızca bir mod seçmek için okudular: HTML 4.01 Strict ve XHTML 1.0 Strict standart mod verir, Transitional sürümler sınırlı quirks modu verir, URL'siz HTML 4.01 Transitional ise tam quirks modu verir. Denemek için birini yukarıdaki denetleyiciye yapıştır. compatMode sınırlı quirks modunu standart modla aynı değer olan CSS1Compat olarak bildirir, bu yüzden BackCompat olarak yalnızca tam quirks modu görünür.
Standart modda olan sayfalarda eski bir doctype'ı <!DOCTYPE html> ile değiştirmek güvenlidir. Quirks modunda olan bir sayfa biraz kayabilir (genellikle yükseklikler ve resimlerin altındaki boşluklar), bu yüzden değişiklikten sonra sayfayı gözden geçir.
DOM'da doctype
Doctype, <html> elementinden ayrı bir DocumentType düğümü olur. Script'ler ona document.doctype ile ulaşır, document.compatMode ise sayfanın hangi moda düştüğünü bildirir:
document.compatMode, yayındaki herhangi bir siteyi kontrol etmenin en hızlı yoludur: tarayıcı konsolunu aç ve yaz. "CSS1Compat" standart (ya da sınırlı quirks) mod, "BackCompat" quirks modu demektir.
Eksiksiz bir HTML5 başlangıç şablonu
Doctype, her sayfanın başlaması gereken en küçük belgenin bir parçasıdır. Aşağıdaki her satırın bir görevi var:
lang özelliği ve meta viewport etiketi için ayrı sayfalar var.
Sık yapılan hatalar
- Doctype'tan önce bir şey olması. Başıboş bir karakter, bir sunucu script'inden kalan hata ayıklama
echoçıktısı ya da<!DOCTYPE html>satırının üstündeki bir HTML etiketi, bütün sayfayı quirks moduna sokar. Yorumlar ve boş satırlar sorun değildir. - Sürüm uydurmak.
<!DOCTYPE html5>ya da<!DOCTYPE HTML 5>geçerli değildir ve quirks modunu tetikler. HTML5 doctype'ı sadece<!DOCTYPE html>şeklindedir. - Onu kapatmak.
<!DOCTYPE html></!DOCTYPE>geçerli HTML değildir. Bildirimin kapanış etiketi yoktur. - Küçük test dosyalarında unutmak. Doctype'sız bir deneme dosyasında peşine düştüğün yerleşim hataları gerçek sayfada olmayabilir, tersi de geçerli.
- Eski bir Transitional doctype'ı tutmak. Sayfayı hiçbir fayda sağlamadan sınırlı quirks moduna sokar.
<!DOCTYPE html>kullan.
Sıkça Sorulan Sorular
<!DOCTYPE html> ne işe yarar?
Tarayıcıya sayfanın modern bir HTML belgesi olduğunu söyler, böylece sayfa standart modda gösterilir. Doctype yoksa tarayıcılar quirks moduna geçer. Bu mod 1990'ların sonundaki tarayıcıların hatalarını taklit eder ve bazı yerleşimlerin ve yüksekliklerin nasıl hesaplandığını değiştirir.
<!DOCTYPE html> yazmak zorunlu mu?
Sayfa onsuz da açılır, ama HTML standardı onu şart koşar ve tarayıcılar sayfayı quirks modunda gösterir. <!DOCTYPE html> satırını her zaman ilk satıra yaz.
Doctype büyük küçük harfe duyarlı mı?
Hayır. <!DOCTYPE html>, <!doctype html> ve <!DocType HTML> aynı anlama gelir. En yaygın yazım büyük harfle DOCTYPE, küçük harfle html şeklindedir.
DOCTYPE bir HTML etiketi mi?
Hayır. Bir element değil, bir bildirimdir: kapanış etiketi yoktur, ekleyebileceğin bir özelliği yoktur ve document.body içinde görünmez. DOM'da document.doctype ile erişilen ayrı bir DocumentType düğümüdür.
HTML5 için doctype nedir?
<!DOCTYPE html>. HTML5, HTML 4.01 ve XHTML'deki uzun public identifier ve URL'leri kaldırdı. Yeni bir sayfa için ihtiyacın olan tek doctype bu kısa hâlidir.
Bir sayfanın quirks modunda olup olmadığını nasıl anlarım?
Tarayıcı konsolunu aç ve document.compatMode yaz. "CSS1Compat" standart mod (ya da sınırlı quirks modu), "BackCompat" quirks modu demektir.