XHTML + CSS

Viimane HTML-keele standard XHTML (eXtensible HyperText Markup Language) käsitleb kogu HTML-dokumenti kui eritüübilist XML dokumenti. Selles on lubatud kõik HTML 4.01 märgendid ja sündmused, kuid kogu dokumendi formateerimine XML-ina muudab süntaksi palju rangemaks. See lihtsustab analüüsi (parsing), nii et XHTML-sirvijaid saab kasutada ka piiratud mäluga pihu- ja mobiilseadmetes. XML-märgendite analüüsiks (parsing) on teegid paljudes programmeerimiskeeltes (Java, Python, Ruby jne) ja nende abil on lihtne realiseerida mitmesuguseid eriotstarbelisi (näiteks e-kaubamaja jaoks) XHTML (või XML)-parserit; "täieliku" HTML-analüüsaatori realiseerimine aga pole sugugi triviaalne ülesanne. XHTML võimaldab dokumendis kasutada peale HTML-märgendite ka teisi XML-keeli, näiteks matemaatiliste valemite kirjutamiseks loodud MathML ja SVG (Scalable Vector Graphics, esimene www-s kasutatav vektorgraafika formaat). Kõik tähtsamad sirvijad toetavad XHTML-i, s.t. oskavad näidata XHTML-is kirjutatud dokumente.

XHTML esitab palju rangemad nõuded süntaksile:

Nõudeid on veel rohkem, kuid need olid kõige olulisemad.

Järgnevas on väike näide XHTML 1.1 formaadis dokumendist; märgistiku utf-8 (see on Unicode kodeering) kasutuselevõtt tagab, et kõik eesti täpitähed esitatakse tekstis õieti.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Kiri</title>
<link href="kiri.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="autor">
<img src="images/logo.gif" width="34" height="44"/><br/>
KÕRGEM JÕUD
</div>
<div class="kellele">
<span class="adresaat">Peeter Poorgant</span><br/>
Kakumäe tee 4, Hürila </div>
<div class="aeg">10.11.2005</div>
<div class="pealkiri">Vastus Teie kirjale 09.10.2005</div>
<div class="poordumine">V.a. hr. Poorgant,</div>

<p>Praegu meie laos Teie poolt soovitud riive ei ole.</p>
<p>Oleme saatnud tellimuse tootjale ja teatame Teile vastuse
saabumisel.</p>
<div class="allkiri">Lugupidamisega,<br />
müügidirektor Jüri Jänes</div>
</body>
</html>
Dokumendi HTML-tekst (source)

Selles XHTML-dokumendis ei esine ühtegi formateerimismärgendit, formateerimine on kirjeldatud päises lingitud CSS-stiililehel kiri.css:


body
{ margin-left:30mm;
margin-right:12mm;
margin-top: 8mm;
margin-bottom: 8mm;
}
.autor
{ width:100%;
font-weight: bold;
text-align: center;
}
.kellele
{ display:block;
float:left;
width:76mm;
}
.adresaat
{ font-style: italic;
}
.nimi
{ font-style: oblique;
font-weight: bold;
}
.aeg
{ display:block;
width:76mm;
float:right}
.pealkiri
{ text-indent: 2em;
margin-top:4em;
margin-bottom:6em;
}
.poordumine
{ display:block;
margin-top: 4em;
text-indent: 2em;
}
.allkiri
{ margin-top:1em;}
p
{ margin-top: 0.2em;
}
CSS-stiilileht kiri.css

Esimene, HTML-märgendi body stiil määrab kogu dokumendi paigutuse lehel/ekraanil (ääriste margin-top, margin-left, margin-right, margin-bottom väärtused on võetud standardiprojektist EVS-882-1); siin võiks määrata ka muud kogu dokumendi ulatuses kehtivad formateeringud: fondi, tähesuuruse jne. Paragrahvide <p>...</p> vahe ja taandread on määratud tähesuuruse ühikutes em, seega jäävad nad täheruumide suhtes samaks, kui näiteks body-märgendi stiilis muudetakse kogu dokumendi tähesuurust font-size. Blokk-tüüpi (s.t. tekitavad reavahetuse enne ja pärast) <div>-märgendiga osad kellele ja aeg on piiratud laiusega (ka need väärtused on võetud standardiprojektist EVS-882-1); kuna nad on määratud "ujuma" (float) üks paremale ja teine vasemale, paigutuvad nad leheküljel samale kõrgusele; alloleval joonisel on näha, millised osad lõpptulemuse formateerimisel tekivad:

kiri_css

Stiililehega formateerimisel säilub dokumendi infostruktuur ja formateerimiseks pole tarvis kasutada reavahetusi ja/või tühikuid. Reavahetused ja tühikud pole formateerimisvahendid, nad lõhuvad dokumendi struktuuri - kui sama dokumenti on tarvis avada teistsuguse suurusega aknas või trükkida teistsuguse suurusega paberile, tekivad kohe probleemid.


Ülesandeid:
1. Ylesande tekst

Küsimused, probleemid: ©2004 Jaak Henno