HTML5
XHTML-sintakso
Tiu ĉi parto celas precipe tiujn, kiuj jam regas ekzemple HTML-on 4, sed ne XHTML-on. Se vi jam scias la bazajn regulojn de XHTML (XHTML 1.0 aŭ XHTML 1.1), tiam tiu ĉi parto estas sufiĉe superflua por vi, kaj vi eble preferas tuj salti al la sekva parto.
Devigaj markoj
Laŭ la HTML-sintakso komencaj kaj finaj markoj por iuj elementoj, ekzemple head
, body
kaj p
estas forlaseblaj (laŭ certaj reguloj). En XHTML oni tamen devas ilin ĉiam uzi. Do, ĉiu elemento devas havi kaj komencan markon, kaj finan markon (vidu tamen ĉi-poste pri malplenaj elementoj).
Minusklaj markoj kaj atributoj
En XHTML ĉiuj nomoj de elementoj kaj atributoj havas minusklan formon, kaj devas esti ĝuste tiel skribataj. En HTML eblas elekti laŭplaĉe la usklecon. Do, nepre <body>
, ne <BODY>
nek <Body>
aŭ simile, nepre <p>
, ne <P>
, nepre <td rowspan="2">
, ne <TD ROWSPAN="2">
nek <td ROWSPAN="2">
, k.t.p.
Oni notu, ke ankaŭ stilfolio, kiu indikas la prezentostilon de XHTML-dokumento, laŭe uzu minusklajn nomojn por nomi la stiligatajn elementojn.
Elementoj ne povas interplektiĝi
Komencmarkoj kaj finmarkoj de elementoj devas aperi en logika ordo. Se ekzemple <strong>
-elemento troviĝas ene de <em>
-elemento, kaj la komencmarko <strong>
, kaj la finmarko </strong>
devas esti ene de la <em>
-elemento.
Malĝusta | Ĝusta |
---|---|
<em>teksto <strong>teksto teksto</em></strong> |
<em>teksto <strong>teksto teksto</strong></em> |
<a>vorto <em>vorto</a> vorto</em> |
<a>vorto <em>vorto</em></a> <em>vorto</em> |
Principe misinterplektiĝo estas erara ankaŭ en HTML, sed estas tamen praktike tolerata de la TTT-legiloj, kiuj provas diveni, kion oni vere celis. Se oni uzas XHTML-on, kaj se oni uzas ĝin kiel veran XML-on, tiam tiaj eraroj tute ne estas tolerataj. Paĝo kun tiaj eraroj tute ne prezentiĝas al la legantoj. Ili anstataŭe vidas nur eraromesaĝon.
Fermo de malplenaj elementoj
Iuj elementoj estas ĉiam malplenaj. Ekzemple <br>
(en HTML) markas finon de linio, sed post <br>
ne sekvas teksto aŭ io alia, kiu estas parto de la <br>
-elemento. La <br>
-marko mem konsistigas la tutan elementon. Simile estas pri <img>
, <meta>
kaj kelkaj aliaj elementoj. En XHTML ankaŭ tiaj malplenaj elementoj devas esti eksplicite fermataj. Tion oni indikas per suprenstreko, /
, antaŭ la fina >
-signo:
HTML | XHTML |
---|---|
<hr> |
<hr/> |
<br> |
<br/> |
<meta ...> |
<meta .../> |
<input ...> |
<input .../> |
<img src="bela.jpg" alt="belaĵo"> |
<img src="bela.jpg" alt="belaĵo"/> |
En tiaj okazoj la sola marko estas samtempe komenca kaj fina.
Oni rimarku, ke en HTML-sintaksa HTML5 tiaj aldonaj suprenstrekoj estas permesataj sed tute libervolaj (kaj efektive sensencaj), dum en XHTML5 ili estas devigaj. En poliglota HTML5 ili estas same devigaj.
En (X)HTML5 la jenaj elementoj estas ĉiam malplenaj: area
, base
, br
, col
, command
, embed
, hr
, img
, input
, keygen
, link
, meta
, param
, source
.
Noto: Principe en XHTML ankaŭ eblas uzi plenajn finmarkojn por tiaj malplenaj elementoj (ekzemple <hr></hr>
). Se oni verkas poliglotan HTML5, oni tamen ne povas uzi tiun varianton.
Noto: Se elemento, kiu povas havi enhavon (ekzemple <p>
) okaze estas malplena, oni povas en XHTML kaj XML ĝin skribi kun unu memfermiĝanta marko, ekzemple <p/>
. Tio tamen ne eblas en poliglota HTML5. Oni devas uzi <p></p>
(aŭ tute forlasi la elementon, ĉar tiaj malplenaj elementoj estas plej ofte sensencaj).
Neripetado de atributoj
En XHTML oni ne rajtas ripeti atributojn ene de elemento.
Malbona | Bona |
---|---|
<p class="io" class="ioalia"> |
<p class="io"> |
Se oni volas doni plurajn klasnomojn al unu elemento, oni skribu ĉiujn nomojn ene de unu sama class
-atributo. Ekzemple <span class="io ioalia iotria">
. Estu tiam spacetoj inter la klas-nomoj.
Bonformeco
“Bonformeco” estas grava baza nocio en XML. La ĉefaj kondiĉoj, por ke dokumento estu bonforma, estas la ĵus klarigitaj reguloj kontraŭ erara interplektiĝo de markoj, pri ĝusta fermado de elementoj, kaj pri neripetado de atributoj.
XHTML-dokumento devas antaŭ ĉio esti bonforma. En iuj kuntekstoj bonformeco estas sufiĉa kondiĉo por ke la dokumento povu esti traktata. Ankaŭ aliaj reguloj gravas, sed la reguloj pri bonformeco estas la plej bazaj kaj plej obeendaj. La bonformecoreguloj estas komunaj al ĉiuj formoj de XML. Aliaj XHTML-reguloj estas propraĵoj de XHTML.
Devigaj citiloj
En XHTML valoroj de atributoj devas ĉiam esti skribataj inter citiloj. Oni povas laŭplaĉe uzi citilojn duoblajn ("..."
) aŭ unuoblajn ('...'
):
HTML | XHTML (kaj HTML) |
---|---|
<img src=bildo.png alt=belaĵo width=100 height=100> |
<img src="bildo.png" alt="belaĵo" width="100" height="100"/> |
Noto: Citiloj estas devigaj en HTML-sintaksa HTML5 nur se la valoro enhavas spacosignon aŭ iun el la jenaj signoj: " ' ` = < >
Minimumigitaj atributoj ne eblas
En HTML oni povis uzi simpligitan, “minimumigitan”, formon de iuj atributoj, kies valoroj estas nomataj “buleaj”. En XHTML oni povas uzi nur la plenan formon de tiaj atributoj.
Ĉiuj koncernaj atributoj estas tiaj, kiuj povas havi nur unu solan valoron, kiu krome estas identa al la nomo de la atributo mem. Temas ekzemple pri la atributo "selected"
(de <option>
-elementoj). La sola valoro por "selected"
estas "selected"
! La plena formo estas do selected="selected"
, kaj la simpligita formo estas selected
(sen egalsigno kaj sen citiloj).
HTML | XHTML (kaj HTML) |
---|---|
<option ... selected> |
<option ... selected="selected"> |
<input type="checkbox" ... checked> |
<input type="checkbox" ... checked="checked"/> |
Oni povas tiajn buleajn atributojn ankaŭ skribi kun malplena valoro (kun citiloj), ekzemple: selected=""
, checked=""
. Tia skribo plene egalas al la formoj kun valoro: selected=""
signifas selected="selected"
, checked=""
signifas checked="checked"
, k.t.p. Tio estas laŭ mia opinio tre konfuza, kaj tial evitinda. Sed tiu eblo ekzistas kaj en HTML-sintaksa HTML5 kaj en XHTML5, kaj do ankaŭ en poliglota HTML5.
<script>
kaj <style>
Ene de la elementoj <script>
kaj <style>
oni devas en XHTML skribi la signojn <
kaj &
kiel signoreferencojn: <
, &
. Ekzemple:
<script>
var x = 1, y = 2;
if (x < y) {
alert("x estas malpli granda ol y");
}
</script>
Estas ĉiuokaze forte konsilinde, kaj en HTML kaj en XHTML, ĉiam meti la enhavon de tiaj elementoj en eksterajn dosierojn, ekzemple js
-dosierojn por Javaskripta kodo, kaj css
-dosierojn por stilfolioj. Ekzemple:
<script src="/js/javaskripto.js"></script>
<link rel="stylesheet" href="../stilo/stilfolio.css"/>
En tiaj eksteraj dosieroj oni skribu <
kaj &
rekte (ne kiel signoreferencojn).
Krome la Javaskriptaj funkcioj document.write()
kaj document.writeln()
ne rajtas esti uzataj en XHTML, se oni servas la dokumenton kiel veran XML-on, t.e. kiel application/xhtml+xml
. Fakte estas ĝenerale konsilinde ne uzi tiujn funkciojn, ĉu en HTML, ĉu en XHTML. Ekzistas multe pli bonaj alternativoj.
Numeraj signoreferencoj
En XHTML numeraj signoreferencoj, kiuj uzas deksesumajn numerojn, ekzemple å
, devas uzi minusklan "x"-on en la numero. (En HTML eblas ankaŭ majuskla "X", ekzemple: å
.) La efektivajn deksesumajn ciferojn literformajn (A, B, C, D, E, F
) oni povas tamen skribi minuskle aŭ majuskle laŭplaĉe: å
aŭ å
.
Indikado de lingvo
En XHTML oni uzu kaj la atributon xml:lang
, kaj la atributon lang
samtempe, kiam oni indikas la homan lingvon de elemento, ekzemple: <p xml:lang="eo" lang="eo">
(“eo” = Esperanto). La du atributoj havu nepre la saman enhavon. (En HTML sufiĉas uzi la atributon lang
.)
La reguloj por poliglota HTML5 eĉ diras, ke oni devas indiki la bazan homan lingvon de HTML5-dokumento en ties html
-elemento, ekzemple jene:
<html xml:lang="eo" lang="eo" xmlns="http://www.w3.org/1999/xhtml">