kaxigt.com

Jag skriver om webben för webben

Rätt doctype för märkspråken XHTM HTML

Postad: 19 juli 2008 | HTML-guider | 2 Comments
Lästid: 2 minuter
Den här uppdaterade guiden tar upp vilket typ av doctype som lämpar sig till märkspråken XHTML/HTML4/HTML5
När du ska göra en hemsida får du aldrig glömma ett doctype. Man använder en doctypedefinition för att underlätta webbläsarnas valideringsverktyg samt att dessa ska kunna utläsa i vilken form hemsidan är konstruerad.

Ett utelämnat doctype innebär att sidan visas i något som kallas för quirks mode, det vill säga, webbläsarna ”gissar” rätt friskt om hur du har tänkt dig att hemsidan ska se ut. Att utelämna en doctype innebär faktiskt större problem än vad man tror för ett doctype är den första informationen som utläses på sidan.

Genom att använda det så underlättar du inte bara för webbläsarna, du vinner också på detta genom att sökspindlarna lättare kan identifiera din sida. I slutändan hamnar du högre upp i sökmotorerna.

Validerar man en sida utan doctype brukar man få följande text: No referrer head is found. Tja, det säger väl ganska mycket – eller hur?

Använder du dig av xhtml så måste du ha en namespacedeklaration i ditt doctype:

<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en"></html>

I detta fall är språket satt till engelska –> lang=”en”. Vill du ändra till svenska anger du ”sv” istället.

Vilket doctype ska jag då ha?

För HTML5 är det denna doctype-delaration:

<!DOCTYPE html>

Om det däremot handlar om ”vanlig” html 4.01 använder du någon av dessa tre:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "https://www.w3.org/TR/html4/frameset.dtd">

Som Du nu ser så finns tre alternativ att välja mellan. Det första alternativet strict är med helt rena html-koder utan några personliga förändringar i koden. Utseendet ska ske genom stöd av css-mallar.

Det andra alternativet transitional (övergångar) är det vanligast förekommande och används som ovan men om man har en ”övergång” mellan vanlig html och css. Viss formatering direkt i html tillåts. Utseendet kan delvis ske genom stöd av css-mallar.

Det tredje alternativet används om man vill använda frames. Doctype i sig är identisk med alternativet transitional. Men skillnaden är innehållet i html-elementet. I dokumentet frames ersätter FRAMES-elementet själva BODY-elementet.

Frames är en föråldrad teknik att bygga webbplatser med och är inget att rekommendera

Doctype XHTML

Använder Du xhtml 1.0 är det någon av dessa tre doctypes du ska använda:

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

Vi har samma regler här. Strict är helt styrd av css i både utseende som uppbyggnad och helt ren från cssformatering i xhtml-koden. Transitional medger viss formatering i koden som exempelvis enkel radbrytning.

Frameset XHTML är som transitional fast i frames men är lika förkastliga att använda som HTML Frameset.

Sist, det sista doctype är detta om du använder xhtml 1.1:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
W3C:s rekommendationer är dessutom att använda xml-encoding för bästa resultat om du ska göra en sida i xhtml 1 strict.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>An XHTML 1.0 Strict standard template</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>
<p>… Your HTML content here …</p>
</body>
</html>

xml-deklarationen till sammans med doctype bildar något som kallas för xml-prologen. Du får lära dig mer om detta i artikeln XHTML (Strict) – mer än en enkel kodstandard. Observera att det inte är en nybörjarguide!

Character encoding UTF-8 är default för xml

Ge akt på typsnittet. Vi i Sverige använde förr charset=iso-8859-1 som medger ett västerländskt typsnitt på grund av våra å ä och ö. Idag är dock UTF-8 globalt gångbart och används mest.

Läs gärna mer om doctype hos W3C.