sfnet.viestinta.www - VUKK
Vastauksia useimmin kysyttyihin kysymyksiin v2.06

sisällysluettelo - Edellinen: "Mitä ovat HTTP ja HTTPS?" - Seuraava: "Miten värit ilmaistaan webissä?"

Mikä on dokumenttityyppi (doctype)?

Dokumenttityyppi tarkoittaa tietoa siitä, mitä SGML:n tai XML:n pohjalle laadittua kielioppia (syntaksia) käytetään. Web-sivujen yhteydessä dokumenttityypin ilmoituksella (sivun alussa oleva <!DOCTYPE-alkuinen rivi) kerrotaan, mitä HTML:n tai XHTML:n versiota sivun tekemisessä on käytetty. Tällaisen ilmoituksen vaikutukset ovat kuitenkin varsin vaihtelevat.

Validaattorin kannalta dokumenttityypin merkitys on olennainen, sillä validointisäännöt luonnollisesti riippuvat siitä, mitä muodollista kielimääritystä vasten validoidaan. Jos esimerkiksi sivu määritellään olemaan puhdasoppisempaa HTML 4.01 Strict -versiota, validaattori puuttuu sellaisiinkin seikkoihin, jotka se sivuuttaisi väljempää HTML 4.01 Transitional -varianttia käytettäessä. Useimmiten itse asiassa validaattori jopa kieltäytyy käsittelemästä sivua ilman doctype-määritystä, tai joka tapauksessa ainakin vaatii valitsemaan dokumenttityypin käsin - eihän koko validoinnissa muuten olisikaan järkeä!

Selaimet voivat muuttaa käytöstään dokumenttityypin määrityksen mukaan, vaikkakaan kovin oikein ne eivät tässä suhteessa toimi. Käytännössä tavanomaisin doctypen vaikutus on selaimen - ja erityisesti IE6:n - valinta ns. quirks- ja standard-tilojen välillä. Quirks-tilassa selaimet pyrkivät matkimaan vanhempien selainten virheitä HTML:n ja CSS:n joidenkin piirteiden käsittelyssä, kun taas standard-tilassa HTML:ää tulkitaan paremmin W3C:n suositusten mukaisesti. Usein doctype-rivin lisääminen tai poistaminen voi siis vaikuttaa myös siihen, miten sivu taittuu selaimella. Juuri muihin kuin visuaalisiin seikkoihin doctype-rivi ei vaikuta. Lisätietoa dokumenttityyppien vaikutuksesta selaimiin (doctype sniffing) löytyy esimerkiksi Henri Sivosen artikkelista Activating the Right Layout Mode Using the Doctype Declaration.

Tavanomaisimmat dokumenttityypin ilmoitukset HTML 4.01:n Strict- ja Transitional-versioille ovat seuraavassa. Uusia verkkosivuja tehdessä kannattaa pyrkiä Strict-version käyttöön. Myös dokumenttityypin ilmoitus kannattaa tällöin pitää dokumenteissa mukana, koska se saa selaimet toimimaan paremmin standardeja noudattaen.

<!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">

XHTML:n vastaavat ilmoitukset ovat seuraavat:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">