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:
- kõik märgendid peavad olema lõpetatud, kas
eraldi lõpumärgendiga <p>...</p>
või kaldkriipsuga sama märgendi lõpus: <br/>, <img ... />
- lõikuvad märgendid nagu <strong>...
<em>...</strong>... <em> on täiesti
lubamatud, peaks olema
<strong>...<em>...</em>...</strong>
- piltidele (märgend <img>
) peab olema lisatud alt-attribuudi
abil selgitav tekst - see on oluline ainult teksti esitavates
sirvijates ja nägemispuuetega inimestele, kellele dokument
loetakse häälega
- märgendid ja nende attribuudid peavad olema kirjutatud
väiketähtedega ja kõik attribuutide
väärtused peavad olema juttumärkides, seega <IMG SRC="AUTOPORTREE.JPG" WIDTH=60 HEIGHT
=80> asemel peab olema <img
src="AUTOPORTREE.JPG" width="60" height="80" alt = "Minu portree"
/>; loomulikult ei tohi failinimes (string!) kirjaviisi
muuta, muidu faili enam ei leita, kuid failinimi pole märgend ega
selle attribuut
- bloki-taseme märgendeid (mis alati tekitavad uue paragrahvi)
ei tohi asetada reataseme (inline, uut paragrahvi ei tehta)
märgendite sisse, seega <em><h3>Alapealkiri</h3></em>
asemel peaks olema
<h3><em>Alapealkiri</em></h3>; veel
parem/õigem oleks, kui <em>
oleks kirjeldatud märgendi <h3>
stiilis stiililehel, nii et sama formateeringu saaks vaid <h3>Alapealkiri</h3>
kasutamisel.
- dokumendi kehas (märgendite <body>...</body>
vahel) ei tohi olla märgenditeta teksti, näiteks <body>Ära siia tule ! </body>
asemel peaks olema (vähemalt) <body><p>Ära
siia tule !</p> </body>
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:
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