HTML in semantika¶
Kaj HTML v resnici je¶
HTML ni jezik za oblikovanje. HTML je jezik za opis pomena in strukture vsebine. To je eno najpomembnejših sporočil celotnega predmeta.
Ko pišemo HTML, v resnici odgovarjamo na vprašanja:
- kaj je naslov,
- kaj je odstavek,
- kaj je navigacija,
- kaj je seznam,
- kaj je članek,
- kaj je obrazec,
- kaj je tabela.
Če dijak to razume, bo kasneje precej lažje razumel tudi CSS, dostopnost, iskalnike in predloge.
Minimalna sodobna HTML predloga¶
<!doctype html>
<html lang="sl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Moja knjižnica</title>
<meta name="description" content="Preprosta spletna aplikacija za evidenco knjig.">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Moja knjižnica</h1>
<nav aria-label="Glavna navigacija">
<a href="/">Domov</a>
<a href="/dodaj">Dodaj knjigo</a>
<a href="/o-projektu">O projektu</a>
</nav>
</header>
<main>
<section>
<h2>Seznam knjig</h2>
<p>Tu bo glavni seznam.</p>
</section>
</main>
<footer>
<p>© 2026</p>
</footer>
</body>
</html>
Ta primer je majhen, a vsebuje večino pomembnih gradnikov sodobne strani.
Pomen osnovnih delov dokumenta¶
<!doctype html>¶
Pove brskalniku, da gre za sodoben HTML dokument.
<html lang="sl">¶
Atribut lang pomaga:
- bralnikom zaslona,
- prevajalnim orodjem,
- pravilni obdelavi jezika.
To je ena tistih malenkosti, ki pokažejo, da do spletne strani ne pristopamo površno.
<meta charset="utf-8">¶
Poskrbi, da se šumniki in drugi znaki pravilno prikažejo.
<meta name="viewport" ...>¶
To je pomembna osnova za odzivnost na mobilnih napravah. Brez nje se lahko stran na telefonih obnaša čudno ali zastarelo.
Semantični elementi¶
Semantični elementi ne povedo samo, kako nekaj izgleda, ampak kaj nekaj pomeni.
Pri tem predmetu so najpomembnejši:
headernavmainsectionarticleasidefooter
Zakaj so pomembni¶
Semantični HTML pomaga:
- ljudem, ker je dokument bolj logičen,
- CSS-u, ker je struktura čistejša,
- dostopnosti, ker tehnologije lažje razumejo vsebino,
- razvijalcu, ker je projekt bolj berljiv,
- iskalnikom, ker lažje razberejo pomen strani.
Struktura strani¶
Dobra struktura¶
<main>
<section>
<h2>Najnovejše knjige</h2>
<article>
<h3>Alamut</h3>
<p>Roman Vladimirja Bartola.</p>
</article>
<article>
<h3>1984</h3>
<p>Roman Georgea Orwella.</p>
</article>
</section>
</main>
Slaba struktura¶
<div class="main">
<div class="box">
<div class="big">Najnovejše knjige</div>
<div class="item">
<div class="title">Alamut</div>
<div class="desc">Roman Vladimirja Bartola.</div>
</div>
</div>
</div>
Drugi primer morda še vedno “izgleda prav”, a logika dokumenta je veliko slabša.
Naslovi in hierarhija¶
Naslovov ne uporabljamo zaradi velikosti črk, ampak zaradi logične zgradbe dokumenta.
Dobro:
Slabo:
Pravilna hierarhija pomaga pri orientaciji in dostopnosti.
Pogosti vsebinski elementi¶
Odstavki¶
Poudarki¶
<p><strong>Pozor:</strong> podatki se shranijo v bazo.</p>
<p><em>Opomba:</em> leto izida ni obvezno polje.</p>
Seznami¶
Seznami so odlični za korake, pravila, kategorije, navigacijo in kontrolne sezname.
Povezave¶
Povezava pomeni premik na drug vir ali lokacijo.
Pomembno pravilo:
- povezava pomeni prehod,
- gumb pomeni dejanje.
To je majhna stvar, ki začetnikom pogosto dela zmedo.
Slike in alt¶
Pri slikah razloži dve situaciji.
Informativna slika¶
Če slika nosi pomen, mora imeti smiseln alt.
Dekorativna slika¶
Če slika ne nosi pomena in je samo okras, uporabi prazen alt.
S tem pokažeš, da splet ni samo “vizualna površina”, ampak tudi informacijski sistem.
Tabele¶
Tabele uporabljamo za tabelarične podatke, ne za postavitev strani.
<table>
<thead>
<tr>
<th>Naslov</th>
<th>Avtor</th>
<th>Leto</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alamut</td>
<td>Vladimir Bartol</td>
<td>1938</td>
</tr>
</tbody>
</table>
Če aplikacija prikazuje sezname, evidence ali poročila, bodo tabele zelo hitro uporabne.
div in span¶
To nista “slaba” elementa. Sta pa nesemantična elementa, zato ju uporabimo takrat, ko noben smiselni semantični element ni bolj ustrezen.
divje blokovni splošni vsebnik,spanje vrstični splošni vsebnik.
Napaka ni, da ju uporabljaš. Napaka je, da z njima zamenjaš skoraj vse ostalo.
Obrazci kot del HTML-ja¶
Obrazci sicer dobijo svoje poglavje, a je koristno že tukaj omeniti:
formzbira podatke,labelpoimenuje polje,input,textarea,selectomogočajo vnos,buttonsproži oddajo.
To je eden najpomembnejših trenutkov, ko HTML iz “prikaza” postane “interakcija”.
HTML in dostopnost¶
Dostopnost ni neka ločena eksotična tema. Velik del dostopnosti je pravzaprav posledica dobrega HTML-ja.
Osnovna pravila:
- uporabi pravi element za pravi namen,
- ohrani logično hierarhijo naslovov,
- dodaj
labelobrazcem, - dodaj smiseln
alt, - navigacijo poimenuj jasno,
- ne uporabljaj
divkot ponarejen gumb.
Dijaki naj čim prej dobijo občutek, da “pravilen HTML” ni samo akademska kaprica.
Pogoste napake¶
Vse je div¶
To pomeni, da razvijalec razmišlja samo o videzu, ne pa o pomenu vsebine.
Naslovi so izbrani po velikosti¶
Velikost se ureja s CSS, ne z napačnim izborom naslovne ravni.
Povezava se uporablja kot gumb¶
Če element sproži dejanje na isti strani, je pogosto bolj smiseln button.
Manjkajoči alt¶
To je zelo pogosta, zelo banalna in zelo nepotrebna napaka.
Napačna struktura strani¶
Včasih začetniki zložijo vse v en sam velik blok brez jasne notranje logike. Posledica je slabša berljivost in težje oblikovanje.
Kontrolni seznam za dijaka¶
Preden odda HTML stran, naj preveri:
1. Ali imam <html lang="sl">?
2. Ali imam charset in viewport?
3. Ali ima stran točno en glavni <h1>?
4. Ali so naslovi v logičnem vrstnem redu?
5. Ali sem uporabil semantične elemente?
6. Ali imajo slike ustrezen alt?
7. Ali so seznami res seznami?
8. Ali sem tabelo uporabil samo za podatke?
Majhen praktičen cilj¶
Po tem poglavju naj dijak zna izdelati:
- osnovno strukturo strani,
- glavo, navigacijo, glavno vsebino in nogo,
- seznam ali preglednico podatkov,
- stran, ki je razumljiva tudi brez CSS.
To zadnje je zelo pomembno. Če HTML sam po sebi ni logičen, CSS samo zakrpa nered.
Dobro pravilo
Najprej napiši HTML tako, da ima smisel brez CSS. Šele nato dodaj videz. Če je struktura dobra, bo vse kasneje veliko manj boleče.