XHTML - en kort introduktion


Hem


Skillnader mellan HTML och XHTML

XHTML (Extensible HTML) kan kort sägas vara en korsning mellan HTML och XML. Genom att använda XML som grund för hur HTML-koden ska skrivas så styr man kodens syntax ganska hårt. Samtidigt är kunskapen om HTML (version 4) ganska spridd vilket gör det lätt att övergå från HTML till XHTML.

XHTML är ett försök att skapa en version av HTML som kommer fungera lika oavsett webbläsare. (Webbläsare i förra meningen borde snarare kallas för agent - även mobiltelefoner och handdatorer kan tänkas användas för att visa dokumentet.) Detta gör man bl.a. genom att definitionen av taggar i XHTML inte byggs in i webbläsare (vilket dom är idag med HTML) utan finns tillgängliga i en fil på Internet (hos W3C). Denna fil innehåller XHTML:s DTD (document type definition) som beskriver taggarnas innebörd.

Skillnader mellan HTML- och XHTML-kod

De flesta kraven för XHTML i listan nedan är egentligen de samma som för HTML, men de flesta webbläsare brukar vara ganska förlåtande om dom inte efterlevs.

  • XHTML-dokumentet ska innehålla (börja) med en referens till en DTD.
  • Dokumentet ska även innehålla en referens till ett XML-namnutrymme (name space).
  • Alla taggar och dess attribut skrivs med gemener (små bokstäver).
  • Både öppnande och avslutande tagg måste användas:
    • För en del element, de som inte innehåller något mellan taggarna, kan den avslutande taggen utelämnas genom att avsluta den öppnande taggen med ett snedstreck (slash - "/"). Exempel: <br/> och <hr/>
  • Elementen <head> och <body> får inte utelämnas.
    • Första elementet i <head> måste vara titeln på sidan (<title>).
  • Eventuella förkortningar (i HTML) av taggars syntax får inte användas i XHTML.

Ett första exempel

<?xml version="1.0" encoding="UTF-8"?>
<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3c.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>En f&ouml;rsta XHTML-sida</title>
  <meta name="description" content="Beskrivning av dokument">
  <meta author="Bj&ouml;rn Persson">
  <meta http-equiv="expires" content="24 Jan 2001">
</head>
<body>
  <h1>En rubrik</h1>
  <p>... och lite text i ett stycke.</p>
  <p><strong>OBS!</strong> Denna fil g&aring;r inte att redigera i 
    FrontPage 2000!<br />
    FrontPage 2000 flyttar runt taggarna den inte k&auml;nner igen och 
    placerar dem i kroppen (&lt;body&gt;) ist&auml;llet.</p>
</body>
</html>

Exempel X1.1: Ett enkelt XHTML-dokument.

Taggar i XHTML

De flesta taggar i HTML 4 finns även i XHTML. Skillnaden, som nämnts ovan, ligger i att alla taggar måste ha både en öppnande och avslutande tagg. Även "tomma" taggar så som <br> måste ha en avslutande tag - men man kan även avsluta den öppnande taggen med ett snedstreck för att behöva skriva ut den avslutande taggen.

I tabellen nedan vissa exempel på några taggar som har ändrats, d.v.s. måste skrivas på ett lite annorlunda sätt.
 

HTML

XHTML

<br> <br></br> eller <br/>
<hr> <hr></hr> eller <hr/>
   

 
Webbläsare för HTML implementeras så att om dom inte förstår en tagg så ska dom strunta i den, d.v.s. taggens innebörd och dess attribut. På så sätt kan nya versioner av HTML användas även i webbläsare för äldre versioner av HTML. Det leder i.o.f.s. till att hemsidorna i äldre webbläsare kanske inte visas på det sätt man tänkt sig, men de visas i.a.f.. Och eftersom XHTML bygger på HTML 4 så kan "äldre" webbläsare visa även XHTML. Men problemet kan uppstå då man t.ex. använder den förkortade versionen av "tomma" taggar (t.ex. <br/> och <hr/>) då dessa kan tolkas som taggar som webbläsaren inte förstår. HTML bygger ju på att taggarnas namn inte får innehålla t.ex. mellanrum, d.v.s. taggarnas namn måste skrivas som ett helt ord och inte sitta samman med attributens namn.

För att göra XHTML-kod kompatibel med HTML kan man, i de förkortade versionerna av "tomma" taggar, placera ett mellanslag efter taggens namn. I XHTML kommer <br/> tolkas samma som <br /> och i HTML kan webbläsaren tolka snedstrecket som ett attribut den inte känner igen, d.v.s. webbläsare kommer bortse från "attributet". Detta gäller bl.a. i Netscape Navigator (versioner tidigare än 4.76 idag, 010120).


Hem


Skapad av: Björn G D Persson. Uppdaterad: 2001-07-08.