Een doctype (Document Type) is een verplicht onderdeel van een HTML-document. Door een doctype op te geven, weet de browser in welke versie van HTML je schrijft. Als je geen doctype opgeeft, zal de browser automatisch overgaan op een quirksmodus. Daarbij zal de browser de pagina weergeven zoals hij dat ook in eerdere versies van de browser deed. Hij zal dus bugs 'simuleren'.
In de doctype is een verwijzing naar een DTD-bestand. In dat bestand staat precies welke HTML-versie er gebruikt is, welke tags in het document mogen voorkomen, en waar die tags mogen (de title-tag mag bijvoorbeeld niet in de body geplaatst worden). Ook staat er voor ieder element in of het een openings- en een sluitingstag heeft, en of het element een inhoud heeft. Ook staat er alles in over attributen, zoals welke attributen bij welke tag horen, of sommige attributen weggelaten mogen worden en welke attributen verplicht zijn. In het DTD-betsand is ook aangegeven welke waarden een attribuut allemaal kan hebben, of je een attribuut leeg mag laten en wat de standaardwaarde van een attribuut is. Een HTML-document zal alleen gevalideerd worden door een HTML-validator als er een doctype beschikbaar is.
De meeste oude browsers zullen het doctype negeren, maar de nieuwere browsers gebruiken de doctype-tag ook om te bepalen hoe de browser het document weer moet geven. Daarbij kiest hij uit 2 manieren: de quirksmodus (of compatibilitymodus, dat betekend 'uitwisselbaarheidsmodus'), waar ik het al eerder over had, of de standards-modus. In de quirksmodus worden bugs uit oudere browsers gesimuleerd, zodat de webpagina er hetzelfde uit zal zien. In de standards-modus zullen de browsers zich wel aan de regels (proberen te) houden.
Zie voor welke doctypes je allemaal kunt gebruiken de voorbeelden.
Naar boven...| Informatie: | |
|---|---|
| HTML 4.0 DTD: | strict, transitional, frameset |
| Beëindiging: (Sluittag) | verboden |
| Inhoud: | heeft geen inhoud |
| Mag zijn opgenomen in: | mag niet opgenomen zijn |
| Mag niet zijn opgenomen in: | alle elementen |
| Vereiste attributen: | (geen) |
| Inline Element: | Nee |
| Element op blokniveau: | Nee |
| HTML: | 2.0 |
| Internet Explorer: | 5.0 |
| Netscape: | 6.0 |
| Mozilla: | 1.0 |
| Firefox: | 1.0 |
| Opera: | - |
| Voorbeeld: |
|---|
<!-- HTML 4.01 Strict --> |
<!-- HTML 4.01 Transitional --> |
<!-- HTML 4.01 Frameset --> |
<!-- Oudere Doctypes (niet aanbevolen) --> |
<!-- HTML 4.0 Transitional --> |
<!-- HTML 4.0 Frameset --> |
<!-- HTML 3.2 --> |
<!-- HTML 2.0 --> |