Hur funkar Doctype för XHTML?

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Bollnäs
  • 2004-02-26 18:47

Om jag ska ange att en sida är kodad som XHTML 1.0 Transitional och att innehållet är på svenska, ska jag då skriva:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//SV" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi...">
<html xmlns="http://www.w3.org/1999/xhtml">

Eller:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi...">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">

Eller spelar det ingen roll?

Jag tror inte det spelar någon roll faktiskt.

Nja, DOCTYPE:n är väl alltid definerad på engelska? Däremot är det andra exemplet rätt. Det är ju ditt dokument som är på svenska...

Jag håller med Marcus.

Titta på http://www.w3.org/TR/xhtml1/#normative för ytterligare förklaringar/exempel.

//Mikael

  • Medlem
  • Bollnäs
  • 2004-02-27 09:37

Ok. Så strängen för doctype skrivs alltså formellt på ett språk?!? Trodde den var i html...

Så html-stängen anger alltså innehållet på hela sidan, både kodspråk och innehållsspråk. Vad har det för praktisk betydelse att jag anger att innehållet är på svenska? Är det det som Google läser och kategoriserar sidorna efter?

Egentligen så skall det se ut så här

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi...">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="sv">

lang: anger att din sida är skriven på svenska. xml:lang anger att den version av XML du använder är på engelska. Men eftersom XHTML är definierad på engelska kan du köra med "en" rakt av. Att [b]innehållet]/b| sedan är på svenska definierar du i meta-taggarna. (<meta name="dc.language" content="sv" />). Så tolkar jag det iaf.

DOCTYPE:n talar bara om för webbläsaren vilken standard du har försökt att följa. Den gör inget särskilt. Skulle du däremot inte ange DOCTYPE så växlar webbläsaren över i "quirk mode" dvs den tolkar ditt dokument som ett icke-standard-dokument och du kan skriva hur ful kod du vill

  • Medlem
  • Karlstad
  • 2004-02-27 11:44
Ursprungligen av Marcus Holmer:

DOCTYPE:n talar bara om för webbläsaren vilken standard du har försökt att följa. Den gör inget särskilt.

Det där var nog ganska rejält fel. DTD:n är väldigt avgörande, särskilt för vissa element. Använder du inte rätt, så pajar sidan.

Ursprungligen av Marcus Holmer:

Skulle du däremot inte ange DOCTYPE så växlar webbläsaren över i "quirk mode" dvs den tolkar ditt dokument som ett icke-standard-dokument och du kan skriva hur ful kod du vill

Fel igen . Somliga webbläsare går in i Standard mode ändå (en del t.o.m. i "Almost" mode), inte bara beroende på DTD:n, utan också om länken till W3C:s validator saknas eller finns med.
Här finns mycket nyttigt:
http://www.hut.fi/u/hsivonen/doctype.html

Doctypen (alltså där du anger vilken DTD du använder) visar ju en formell syntax för vilken DTD du avser att använda. Det är helt enkelt fastställda identifierare som normalt inte skall ändras.

Kolla t.ex. hur Mozilla läser doctype: http://www.mozilla.org/docs/web-developer/quirks/doctypes.html

Vad gäller språken så finns det hyggligt bra förklarat på http://www.w3.org/TR/2004/REC-xml-20040204/#sec-lang-tag

//Mikael

  • Medlem
  • Bollnäs
  • 2004-02-27 10:59

Hmmm...
Nu är det många bud.

Ska jag strunta i att ange svenska överhuvudtaget i doctype- och html-taggarna, och bara ange det som en meta-tagg?

I så fall, vad är det för skillnad på name="dc.language" och name="language"?

Jag har också sett exemplet <META name="description" lang="SV">, hur ska det vara egentligen? Och spelar det någon roll?

  • Medlem
  • Karlstad
  • 2004-02-27 11:50
Ursprungligen av Kalle W:

Hmmm...
Nu är det många bud.

Ska jag strunta i att ange svenska överhuvudtaget i doctype- och html-taggarna, och bara ange det som en meta-tagg?

I så fall, vad är det för skillnad på name="dc.language" och name="language"?

Jag har också sett exemplet <META name="description" lang="SV">, hur ska det vara egentligen? Och spelar det någon roll?

Du behöver över huvud taget inte ange språk, om du inte har en massa olika versioner och vill att de användare som ställt in sin läsare på ett särskilt språk skall få upp det. Men eftersom inte många har gjort det, så spelar det liksom ingen större roll ändå.

Jag rotade i det här för ett tag sedan, och letade efter nåt script som kunde identifera t.ex. användarens IP address för att sedan leverera en viss språkversion. Men alltihop ledde runt i cirklar, och till slut gav jag upp. Det finns inget egentligt verktyg, och det är dessutom ofta irriterande om man som användare tvingas på en särskild språkversion.

Danne

Du ska följa Marcus Holmers råd. DTD-n talar om vilken standard du försöker följa och ditt dokument tolkas enligt detta. Jag tycekr dessutom att man ska följa senaste standard om man inte har mycket bra argument för att göra annat. Dokumentet bör alltså börja

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="sv">
<head>
<link rel="stylesheet" type="text/css" href="xxx.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Välkommen till mig</title>
</head>
<body>
...

där 'xxx' och titel bytes mot något lämpligt
eller (om 1.1 blivit upphöjt till "lag") använda motsvarande för XHTML 1.1

  • Medlem
  • Bollnäs
  • 2004-02-27 13:35

Varför jag valt Transitional istället för Strict, är för att jag använder en del tabeller för formatering av innehållet bland annat. Och som jag förstått det så är det Transitional som gäller då.

Men jag håller på att lära mig Strict. Tar lite tid att sätta sig in i hur man ska bete sig för att strukturera innehållet med div, span och sånt på bästa sätt. Men det kommer.

Tillsvidare kör jag med

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="sv">
Ursprungligen av Kalle W:

Varför jag valt Transitional istället för Strict, är för att jag använder en del tabeller för formatering av innehållet bland annat. Och som jag förstått det så är det Transitional som gäller då.

Men jag håller på att lära mig Strict. Tar lite tid att sätta sig in i hur man ska bete sig för att strukturera innehållet med div, span och sånt på bästa sätt. Men det kommer.

Tillsvidare kör jag med

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

Jag kör strict och eftersom jag inte lärt mig (ännu) hur man positionerar mha css så använder jag tabeller. Och det funkar. Kodsnuttarna i mitt tidigare inlägg kommer från sådan site.

  • Medlem
  • Karlstad
  • 2004-02-27 18:16

Om du är intresserad av hur en del försöker leverera särskilda språkversioner till olika användare, så finns det en del bra läsning här:
http://ppewww.ph.gla.ac.uk/~flavell/www/lang-neg.html

1
Bevaka tråden