Oct
Vad är en doctype?
Kategorier: (X)HTML WebstandarderVarje HTML-sida måste enligt standarden ha ett doctype-element. Detta element talar om för webbläsaren vilken version av HTML / XHTML sidan innehåller. Doctype-elementet måste komma före allt annat på sidan. Men vad innehåller en doctype? Vad är skillnaden mellan strict och transitional? Och vad är quirks mode och standards mode i en webbläsare? Läs vidare så får du svaret.
Ordet doctype är en förkortning av Document Type Declaration som direkt översatt betyder dokument-typs-deklaration. Den berättar alltså vad dokumentet är av för typ. En DTD består av flera olika delar:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
"!DOCTYPE" är en identifierare som berättar för klientprogrammet att det som följer kommer att berätta vad sidan är för typ av dokument. "HTML" berättar för klientprogrammet vilket element som är "top-level", det vill säga vilket element som ska komma först efter DTDn. "PUBLIC" berättar att dokumenttypen är allmän. Sedan kommer en förklaring till vilka som skapat dokumenttypen och vad den heter, en så kallad "Formal Public Identifier".
-//W3C//DTD HTML 4.01//EN
Denna FPI är uppbyggd av några olika delar: Först kommer registreringen, är den ett plustecken är organisationen som skapat och underhåller dokumenttypen registrerad hos ISO, annars är den ett minustecken. Sen kommer namnet på organisationen som skapat och underhåller dokumenttypen (W3C i detta fall). Efter detta kommer den del som kan läsas av oss människor och förklarar för oss vad det är vi ser, i detta fall en DTD för HTML version 4.01 vilket är den strikta versionen av HTML 4.01. Sist i FPI:n kommer "EN" för english som anger vilket språk DTD:n är skriven i.
Sist i doctypen kommer en URI (länk) till en DTD som datorer kan läsa. Prova att öppna den i en textfil. Där står bland annat vilka element som är tillåtna och massa andra saker som går utanför denna artikels område.
Dagens webbläsare bryr sig inte bara om vilken doctype man har, de bryr sig även om ifall den finns i dokumentet överhuvudtaget. Detta härstammar från den tid när webbstandarder knappt existerade. Då gjorde webbläsartillverkarna egna tolkningar och implementationer av t.ex. CSS-standarden i sina webbläsare. När standarder blev mer populära var tillverkarna tvungna att göra något för att deras webbläsare skulle tolka standarderna rätt, men samtidigt inte förstöra sidor som var kodade efter de gamla implementationerna. Här kommer "Standards mode" och "Quirks mode" in i bilden.
Om en sida har en korrekt doctype går webbläsaren in i "Standards mode" vilket innebär att den tolkar HTML och CSS efter gällande webbstandard för dokumenttypen.
Om sidan saknar en doctype går webbläsaren in i "Quirks mode" vilket innebär att den tolkar koden på ett helt eget sätt som oftast inte liknar W3Cs standarder alls.
För att få ett förutsägbart beteende vad det gäller CSS och HTML hos en webbläsare är du mer eller mindre tvungen att köra i standards mode. I quirks mode tolkar olika webbläsare koden på olika sätt hej vilt.
Vad finns det då för korrekta dokumenttyper? Här kommer en liten lista på de absolut vanligaste:
<!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">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Som du ser är det dels de två olika standarderna HTML 4.01 och XHTML. Men det finns två av varje, "Transitional" och "Strict". Vad skiljer dessa åt?
"Transitional" i det här fallet innebär en slappare tolkning av webbstandarden. T.ex. tillåts utseendeattribut och element i HTML-koden i större utsträckning. Du behöver inte separera innehåll och utseende helt och hållet. Även vissa andra saker tillåts som att text och bilder får finnas direkt under body-elementet.
I ett dokument av typen "Strict" måste du separera innehåll och utseende. Attribut och element som styr utseende ska ligga i en separat CSS-fil. Dokumenttypen tillåter inga utsvävningar från standarden.
Givetvis är det den strikta dokumenttypen man ska sträva efter att använda. Den uppmuntrar och tvingar en att följa standarder. Har du många gamla sidor som riskerar att gå sönder om du lägger till en doctype kan det dock vara en lättare att använda transitional, som betyder övergång, när du går från inga webbstandarder till att åtminstone försöka stödja vissa delar.
TYCKTE DU OM ARTIKELN?

