HTML5
XHTML-sintakso
Tiu chi 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 au XHTML 1.1), tiam tiu chi parto estas sufiche superflua por vi, kaj vi eble preferas tuj salti al la sekva parto.
Devigaj markoj
Lau la HTML-sintakso komencaj kaj finaj markoj por iuj elementoj, ekzemple head
, body
kaj p
estas forlaseblaj (lau certaj reguloj). En XHTML oni tamen devas ilin chiam uzi. Do, chiu elemento devas havi kaj komencan markon, kaj finan markon (vidu tamen chi-poste pri malplenaj elementoj).
Minusklaj markoj kaj atributoj
En XHTML chiuj nomoj de elementoj kaj atributoj havas minusklan formon, kaj devas esti ghuste tiel skribataj. En HTML eblas elekti lauplache la usklecon. Do, nepre <body>
, ne <BODY>
nek <Body>
au simile, nepre <p>
, ne <P>
, nepre <td rowspan="2">
, ne <TD ROWSPAN="2">
nek <td ROWSPAN="2">
, k.t.p.
Oni notu, ke ankau stilfolio, kiu indikas la prezentostilon de XHTML-dokumento, laue uzu minusklajn nomojn por nomi la stiligatajn elementojn.
Elementoj ne povas interplektighi
Komencmarkoj kaj finmarkoj de elementoj devas aperi en logika ordo. Se ekzemple <strong>
-elemento trovighas ene de <em>
-elemento, kaj la komencmarko <strong>
, kaj la finmarko </strong>
devas esti ene de la <em>
-elemento.
Malghusta | Ghusta |
---|---|
<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 misinterplektigho estas erara ankau 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 ghin kiel veran XML-on, tiam tiaj eraroj tute ne estas tolerataj. Pagho kun tiaj eraroj tute ne prezentighas al la legantoj. Ili anstataue vidas nur eraromesaghon.
Fermo de malplenaj elementoj
Iuj elementoj estas chiam malplenaj. Ekzemple <br>
(en HTML) markas finon de linio, sed post <br>
ne sekvas teksto au 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 ankau tiaj malplenaj elementoj devas esti eksplicite fermataj. Tion oni indikas per suprenstreko, /
, antau la fina >
-signo:
HTML | XHTML |
---|---|
<hr> |
<hr/> |
<br> |
<br/> |
<meta ...> |
<meta .../> |
<input ...> |
<input .../> |
<img src="bela.jpg" alt="belajho"> |
<img src="bela.jpg" alt="belajho"/> |
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 chiam malplenaj: area
, base
, br
, col
, command
, embed
, hr
, img
, input
, keygen
, link
, meta
, param
, source
.
Noto: Principe en XHTML ankau 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 ghin skribi kun unu memfermighanta marko, ekzemple <p/>
. Tio tamen ne eblas en poliglota HTML5. Oni devas uzi <p></p>
(au tute forlasi la elementon, char 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 chiujn 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 chefaj kondichoj, por ke dokumento estu bonforma, estas la jhus klarigitaj reguloj kontrau erara interplektigho de markoj, pri ghusta fermado de elementoj, kaj pri neripetado de atributoj.
XHTML-dokumento devas antau chio esti bonforma. En iuj kuntekstoj bonformeco estas suficha kondicho por ke la dokumento povu esti traktata. Ankau aliaj reguloj gravas, sed la reguloj pri bonformeco estas la plej bazaj kaj plej obeendaj. La bonformecoreguloj estas komunaj al chiuj formoj de XML. Aliaj XHTML-reguloj estas proprajhoj de XHTML.
Devigaj citiloj
En XHTML valoroj de atributoj devas chiam esti skribataj inter citiloj. Oni povas lauplache uzi citilojn duoblajn ("..."
) au unuoblajn ('...'
):
HTML | XHTML (kaj HTML) |
---|---|
<img src=bildo.png alt=belajho width=100 height=100> |
<img src="bildo.png" alt="belajho" width="100" height="100"/> |
Noto: Citiloj estas devigaj en HTML-sintaksa HTML5 nur se la valoro enhavas spacosignon au 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.
Chiuj 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 ankau 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 lau mia opinio tre konfuza, kaj tial evitinda. Sed tiu eblo ekzistas kaj en HTML-sintaksa HTML5 kaj en XHTML5, kaj do ankau 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 chiuokaze forte konsilinde, kaj en HTML kaj en XHTML, chiam 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 ghenerale konsilinde ne uzi tiujn funkciojn, chu en HTML, chu 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 ankau majuskla "X", ekzemple: å
.) La efektivajn deksesumajn ciferojn literformajn (A, B, C, D, E, F
) oni povas tamen skribi minuskle au majuskle lauplache: å
au å
.
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 sufichas uzi la atributon lang
.)
La reguloj por poliglota HTML5 ech 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">