Büyük harf mi yoksa küçük harfli mi?


183

HTML5 belgesini yazarken doğru yöntem nedir?

<!DOCTYPE html>

veya

<!doctype html>

Genellikle herhangi biri kullanılabilir olsa da ilk olacak <! DOCTYPE html>
Gölge

Kendi sorumu cevaplamayı başardı ama başkalarının da benzer düşüncelere sahip olması durumunda bunu bırakacağımı düşündüm. Şahsen küçük harf tercih ediyorum; HTML5'te başka hiçbir şey büyük harf değildir.
joshnh

11
Google.com küçük harf kullanıyor<!doctype html>
Leo Galleguillos

4
@HelloWorld: Küçük harfler daha yaygın olduğu için daha iyi sıkıştırılıyor. Günde milyonlarca isabet alan siteler için bu bir fark yaratabilir.
Zaz

SVG dosyaları ne olacak?
William Entriken

Yanıtlar:


183

HTML'de DOCTYPE büyük / küçük harfe duyarsızdır. Aşağıdaki DOCTYPE'lerin tümü geçerlidir:

<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>

XML serileştirmelerinde (yani XHTML) DOCTYPE gerekli değildir, ancak kullanırsanız DOCTYPEbüyük harf olmalıdır:

<!DOCTYPE html>

Bkz . HTML5'in XML serileştirmesi, yani 'XHTML5' :

DOCTYPEBir XHTML belgesinde büyük harf kullanmazsanız , XML ayrıştırıcısının bir sözdizimi hatası döndüreceğini unutmayın.

İkinci bölüm küçük harf ( html), büyük harf ( HTML) veya hatta karışık harf ( ) olarak yazılabilir hTmL- yine de çalışır. Ancak, HTML Uyumlu XHTML Belgeleri için Polyglot İşaretleme Yönergelerine uymak için küçük harfle yazılmalıdır.


9
Hayır, bu yanlış. SGML'de belge türü bildirimi üretim 110'dur, XML'de üretim 28'dir. Her iki durumda da sabit dize "DOCTYPE" (bir etiket değil, bir anahtar sözcüktür ) olarak bildirilir. Dolayısıyla, ilgili SGML ve XML standartlarındaki kanonik tanımlarda her zaman büyük harf olur. Küçük harf "doctype" e izin veren bir yazılım bulursanız, bu yazılım standartlara uygun değildir. Tarayıcılar "kabul ettiklerinde liberal" olacak şekilde tasarlanmıştır, ancak uyumlu bir XML işlemcisi bunu bir doğrulama hatası olarak işaretlemelidir.
Ichiro Furusato

5
... ve X / HTML5'in de bu konuda yanlış olduğunu belirtmeliyim. Belirtildiği gibi, XHTML5 geçerli bir XML işaretlemesi değildir ve olamaz. X / HTML5 spesifikasyonunda çok sayıda hata var. Çok ciddiye almıyorum. Bir " çok dilli işaretleme " (tamamen yeni bir konsept) oluşturmak zorunda oldukları gerçeği, açıkça düştüklerini söylüyor.
Ichiro Furusato

20
@Ichiro SGML'den değil HTML'den bahsediyorum. Hiçbir tarayıcı SGML uygulamadı. Eğer yapsaydı, <title/foo/eşdeğer olurdu <title>foo</title>. Yalnızca birkaç HTML doğrulayıcısı SGML kullanır. HTML5 özelliği bunu açıklayan ilk özelliktir
Mathias Bynens

2
@ TestSubject528491 Bu paragraf DOCTYPE ( html) öğesinin ikinci kısmı hakkındadır . Tam cümle şöyledir: “İkinci bölüm küçük harf ( html), büyük harf ( HTML) veya hatta karışık harf ( ) olarak yazılabilir hTmL- yine de çalışır. Ancak HTML Uyumlu XHTML Belgeleri için Polyglot İşaretleme Yönergelerine uymak için küçük harfle yazılması gerekir. ”
Mathias Bynens

15
@IchiroFurusato HTML5'te okumak isteyebilirsiniz . Alıntı: “Ancak, HTML'nin önceki sürümlerinden farklı olarak, HTML [5] serileştirmesi artık SGML uygulaması olarak görülmemekte, bunun yerine kendi sözdizimini tanımlamaktadır. Sözdizimi SGML'den ilham alırken, tarayıcıların gerçek dünyada HTML'yi gerçekten nasıl ele aldıklarına, özellikle de hata işlemeyle ilgili olarak daha yakından benzeyecek şekilde tanımlanıyor. ”
Mathias Bynens

40

2014'te hala merak eden biri varsa, lütfen buna danışın:

HTML5

W3 HTML5 Spec - Doküman

Bir DOCTYPE bu sırayla aşağıdaki bileşenlerden oluşmalıdır:

1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...

Not: Tüm büyük harflerde gösterilmesine rağmen, özellik duyarsız olduğunu belirtiyor

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

XHTML5

W3 HTML5 - XHTML

This specification does not define any syntax-level requirements 
beyond those defined for XML proper.

XML documents may contain a DOCTYPE if desired, but this is not required 
to conform to this specification. This specification does not define 
a public or system identifier, nor provide a formal DTD.

XML spesifikasyonuna bakarak, DOCTYPE'yi kapaklar halinde listeler, ancak 'tüm büyük harflerin' gerekli olduğunu belirten hiçbir şey bulamıyorum (karşılaştırma için, yukarıda listelenen HTML5 spesifikasyonunda, tüm büyük harflerde örnekte görüntülenir, ancak spesifikasyon bunun büyük / küçük harfe duyarlı olmadığını açıkça belirtir ).

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

Polyglot İşaretlemesi

W3 Polyglot İşaretlemesi - Giriş

Bazen iyi biçimlendirilmiş XML belgeleri olan HTML5 belgelerini sunabilmek de değerlidir.

W3 Polyglot İşaretlemesi - Doküman

Polyglot işaretlemesi, [HTML5] bölüm 8.1.1'de belirtilen bir belge türü bildirimi (DOCTYPE) kullanır. Ayrıca, DOCTYPE aşağıdaki kurallara uygundur:

* The string DOCTYPE is in uppercase letters.

Bu nedenle, Ployglot İşaretlemesinin normal bir HTML5 dokümanı kullandığını, ancak eklemelerin / değişikliklerin olduğunu unutmayın. Tartışmamız için, en önemlisi DOCTYPE'ın tüm başlıklarda beyan edildiği .

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

toplam

W3'ün HTML ve XHTML bölümünü görüntüleme

[Görüş] Özellikle üzerinde durmaya çalışmadıkça XML uyumluluğunu tatmin etme konusunda fazla endişelenmem. Çoğu istemci ve JS tabanlı sunucu geliştirme için JSON, XML'in yerini almıştır.

Bu nedenle, bunu yalnızca, mevcut, xhtml / xml tabanlı eski bir sistemi yeni HTML5 işlevselliğiyle bir arada varolacak şekilde güncellemeye çalışıyorsanız görebilirsiniz. Bu durumda, polyglot biçimlendirme spesifikasyonuna bakın.


18

Göre son spec , sizin için bir harf duyarsız eşleşme şey kullanmalıdır <!DOCTYPE html>. Bu nedenle, tarayıcıların tercih ettiğiniz durumu desteklemesi gerekirken <!DOCTYPE html>, kanonik durumdan çıkarım yapmak mantıklıdır .


3
Spesifikasyon oldukça açık bir şekilde, doctype'in '<! DOCTYPE' için büyük / küçük harfe duyarlı olmayan bir dize içermesi gerektiğini belirtir, bu nedenle '<! DOcTyPe'nin de aynı şekilde doğru olduğunu ima eder.
joshnh

6
Dediğim gibi, spec tarayıcılar her durumda destek gerektirir, bu yüzden her durumda çalışır. Ancak soru-asker açıkça standart, kanonik bir form arıyor, bu yüzden diğerini seçmek için güçlü nedenlerin yokluğunda, spesifikasyondan örnek davayı da kullanabilirsiniz ...
John Mellor

9
Spesifikasyon bunu sürekli olarak yazar <!DOCTYPE html>, bu nedenle spesifikasyonun yazarının söz konusu büyük harf kullanımı için küçük bir tercihi olduğu sonucunu çıkarmak mantıklı olacaktır. Spesifikasyonla aynı büyük harf kullanımını kullanacağım, çünkü bu şeylerin tutarlı olması güzel, ama isterseniz <!dOcTyPebenim misafirim :)
John Mellor

3
@joshnh Karışıklıklarını anlamıyorum. 1) DOCTYPE bildiriminin büyük / küçük harfe duyarlı olmaması gerekir. 2) HTML5 spesifikasyonu örneklerinde büyük harf "DOCTYPE html" kullanır. Bütün bu cevap, her şey geçerli olsa bile, bir büyük harf kullanımının literatürle tutarlı olduğu söylenebilir. Neden bu kadar aşırı?

2
Sanırım @joshnh, John'un söylemeye çalıştığını yanlış anladı. FWIW, John'un belirli bir yolu biçimlendirmek için belirli bir nedenin yokluğunda, şartnamenin tarayıcıların kontrol etmesini istediği şeyle gitmenin tercih edilebileceği fikrine katılıyorum. John asla bunun daha doğru olduğunu ima etmeye çalışmıyordu, sadece tercihinizi dayandıracak bir şey - aksi takdirde tamamen keyfi bir seçim, değil mi?
Ryan Williams

7

Ya büyük ya da küçük harf "doğru". Ancak, web yazı tiplerini kullanırsanız ve IE7'yi önemsiyorsanız <!DOCTYPE html>, IE7'deki web yazı tiplerinin bazen başarısız olduğu durumlarda <!doctype html>(örneğin bu cevapta ) hata yapmasını öneririm .

Bu yüzden her zaman doktrin üzerinde büyük harf kullanıyorum.


6

HTML5 için standart, etiketlerin büyük / küçük harfe duyarlı olmamasıdır.

http://www.w3schools.com/html5/tag_doctype.asp

Daha Teknik Olarak: ( http://www.w3.org/TR/html5/syntax.html )

Bir DOCTYPE bu sırayla aşağıdaki bileşenlerden oluşmalıdır:

  1. Dize için ASCII büyük / küçük harfe duyarlı olmayan bir dize <!DOCTYPE.

35
W3Schools'a güvenmiyorum,% 100 W3C'ye bağlı değiller ve bilgilerinin çoğu iyi olmasına rağmen, bazıları değil.
joshnh

Bu oldukça yaygın olarak bilinir - işte w3.org linki: w3.org/TR/html5/syntax.html
Stephen

4
W3Schools'un diğer web sitelerinden daha fazla veya daha az hatası yoktur. ( Tamamen rastgele örnek ) Bir tuz tanesi ile bilgileri alın, şüpheye düştüğünüzde w3.org sayfalarına bakın ve iyi olacaksınız. Gerçek aptallar W3Schools'un resmi bir kurum olduğuna ya da sertifikalarının bir şey ifade ettiğine inananlardır.
Bay Lister

8
@MrLister: İnsanlara aptallar demenin adil olduğunu düşünmüyorum çünkü onlar "W3Schools" ile "W3C" adında bir bağlantı olduğunu düşünüyorlar. İkisi, isim ve etki alanında kafa karışıklığına neden olacak kadar benzerdir ve birincisinin ikincisi tarafından bir şekilde onaylandığı veya onlarla ilişkili olduğu varsayımı. Bu, W3Schools'un niyetidir, bu da sorunu anlayan birçok insanı kızdırmanın nedenlerinden biridir. Bilgilerinin çoğunun yanlış olduğu gerçeği sorunu birleştiriyor (yani makul bir hizmet vermeleri durumunda biraz affedilebilir)
Bobby Jack

Bağlantısı tag_doctype.aspgeçersiz (404) ve bu soru doctypeetiket olmayan bildirimle ilgili ... Her neyse, sonuç doğrudur: HTML5'te, anahtar kelime doctypebüyük, küçük veya karışık durumda olabilir.
Abel

3

Buradaki soru, tek bir doğru cevabın var olduğunu ima ediyor, çoktan ikisini seçiyor ve bizden bir tane seçmemizi istiyor. Ben HTML5 için hem öneririm <!DOCTYPE html>ve <!doctype html>geçerlidir.

Dolayısıyla, HTML5 özellikli bir tarayıcı küçük olanı kabul eder ve html'yi düzgün şekilde işler.

HTML5'ten önceki ve habersiz tarayıcılar, bir dokümanı olmadan bile, html'yi ellerinden geldiğince işlemeye çalışacağını duydum. Ve küçük harfli doktrin tanımazlarsa aynı şeyi yaparlar. Dolayısıyla, bu tarayıcılar hiçbir şekilde HTML5 bildirimlerini tam olarak uygulayamayacağından, büyük harf yapmanın bir anlamı yoktur.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.