Wielkie czy małe litery?


182

Jaka jest poprawna metoda pisania dokumentu HTML5?

<!DOCTYPE html>

lub

<!doctype html>

Zazwyczaj będzie to pierwszy, choć można go użyć <! DOCTYPE html>
Shadow

Udało mi się odpowiedzieć na moje pytanie, ale pomyślałem, że zostawię je na wypadek, gdyby inni mieli podobne zdanie. Ja osobiście wolę małe litery; nic innego w HTML5 nie jest pisane wielkimi literami.
joshnh

11
Google.com używa małych liter<!doctype html>
Leo Galleguillos

3
@HelloWorld: To dlatego, że małe litery lepiej się kompresują, ponieważ są bardziej powszechne. W przypadku witryn, które otrzymują miliony wyświetleń dziennie, może to mieć znaczenie.
Zaz

Co z plikami SVG?
William Entriken

Odpowiedzi:


183

W HTML DOCTYPE nie rozróżnia wielkości liter. Wszystkie poniższe DOCTYPE są prawidłowe:

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

W serializacjach XML (tj. XHTML) DOCTYPE nie jest wymagany, ale jeśli go używasz, DOCTYPEpowinien być pisany wielkimi literami:

<!DOCTYPE html>

Zobacz Serializacja XML HTML5, znana również jako „XHTML5” :

Zauważ, że jeśli nie zapisujesz wielkich liter DOCTYPEw dokumencie XHTML, parser XML zwróci błąd składniowy.

Druga część może być napisana małymi literami ( html), dużymi literami ( HTML) lub nawet wielkimi literami ( hTmL) - nadal będzie działać. Jednak, aby zachować zgodność z Wytycznymi Polyglot Markup dla dokumentów XHTML zgodnych z HTML , należy pisać małymi literami.


9
Nie, to jest niepoprawne. W SGML deklaracja typu dokumentu to produkcja 110, w XML jest to produkcja 28. W obu przypadkach deklarowana jest jako stały ciąg „DOCTYPE” (który nie jest znacznikiem , jest słowem kluczowym ). Tak więc w definicjach kanonicznych w odpowiednich standardach SGML i XML jest ona zawsze wielka. Jeśli znajdziesz oprogramowanie, które zezwala na „typ dokumentu” zapisany małymi literami, oprogramowanie to nie jest zgodne ze standardami. Przeglądarki są zaprojektowane tak, aby były „liberalne w tym, co akceptują”, ale zgodny procesor XML powinien oznaczać to jako błąd sprawdzania poprawności.
Ichiro Furusato

5
... i powinienem zaznaczyć, że X / HTML5 również jest w tym przypadku niepoprawny. Jak podano, XHTML5 po prostu nie jest poprawnym znacznikiem XML, ani nie może być. Istnieje wiele błędów w specyfikacji X / HTML5. Nie traktuję tego bardzo poważnie. Fakt, że musieli stworzyć „ poliglotyczny znacznik ” (zupełnie nowa koncepcja) wyraźnie świadczy o tym, że dokonali tego .
Ichiro Furusato,

20
@Ichiro Mówię o HTML, a nie SGML. Żadna przeglądarka nigdy nie implementowała SGML. Gdyby tak było, <title/foo/byłoby to równoznaczne z <title>foo</title>. Tylko kilka walidatorów HTML używa SGML. Specyfikacja HTML5 jest pierwszą, która to wyjaśnia: whatwg.org/specs/web-apps/current-work/multipage/…
Mathias Bynens

2
@ TestSubject528491 Ten akapit dotyczy drugiej części DOCTYPE ( html). Oto pełne zdanie: „Druga część może być napisana małymi literami ( html), dużymi literami ( HTML) lub nawet wielkimi literami ( hTmL) - nadal będzie działać. Jednak, aby zachować zgodność z Wytycznymi Polyglot Markup dla dokumentów XHTML zgodnych z HTML, należy pisać małymi literami. ”
Mathias Bynens

15
@IchiroFurusato Możesz przeczytać na HTML5 . Cytat: „Jednak, w przeciwieństwie do poprzednich wersji HTML, serializacja HTML [5] nie jest już uważana za aplikację SGML, ale określa własną składnię. Chociaż składnia jest inspirowana przez SGML, jest definiowana w sposób, który bardziej przypomina sposób, w jaki przeglądarki rzeczywiście obsługują HTML w świecie rzeczywistym, szczególnie w odniesieniu do obsługi błędów. ”
Mathias Bynens,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.