Kihagyás

3.1. fejezet

A fejezet anyaga

A HTML5 szemantikus tagek

Az 1. fejezetben láttunk példát a weboldalak tartalmának strukturálására. Emlékeztetőül: a <div> és <span> tagekkel általános célú szakaszokat, tartalmi egységeket alakítottunk ki.

A <div> egy blokkszintű (block) objektum, ami azt jelenti, hogy mindig új sorban kezdődik, és kihasználja a teljes rendelkezésre álló szélességet. Ezzel szemben a <span> egy sorszintű (inline) elem, tehát nem kezdődik új sorban, és szélessége is csak akkora, mint amekkora helyre szüksége van.

A <div> és <span> tagek mellé, a HTML5 szabványban új, szemantikus jelentéssel bíró strukturális elemeket vezettek be:

  • <header>...</header>: az oldal vagy egy tartalmi egység fejléce
  • <footer>...</footer>: az oldal vagy egy tartalmi egység lábléce
  • <nav>...</nav>: navigációs menü
  • <aside>...</aside>: érintőlegesen kapcsolódó tartalom (jellemzően oldalsáv)
  • <main>...</main>: fő tartalom
  • <section>...</section>: logikai egység
  • <article>...</article>: önálló tartalom.

A fenti tagek kivétel nélkül blokkszintű (block) elemek, a <div>-hez hasonlóan.

Ezek a tagek - az általános célú <div> és <span> tagekkel ellentétben - szemantikai jelentéssel bírnak, tehát egyértelműen meghatározzák a tartalmuk jelentését (pl. egy <nav>-ról tudjuk, hogy valamilyen navigációt valósít meg).

A HTML5-ben bevezetett szemantikus tageket felhasználva precízebben leírhatjuk egy weboldal szerkezetét. Ezekkel a tagekkel készíthetünk például az alábbihoz hasonló elrendezésű weboldalt. (Az ábra forrása)

HTML5 szemantikus tagek

Megjegyzés

Ahhoz, hogy az ábrán látotthoz hasonló elrendezést kapjunk, a tanult tagek használata önmagában nem elegendő (pl. az <aside> nem fog automatikusan oldalra kerülni). Az elemek helyzetének megadására a CSS-beli pozicionálást használhatjuk.

A HTML DOM

Valószínűleg mindenkinek feltűnt, hogy a HTML dokumentumok lényegében HTML objektumok (tagek) egymásba ágyazásából épülnek fel. Ezek az objektumok egy hierarchikus fastruktúrát alkotnak a dokumentumban.

Amikor egy weboldal betöltődik, akkor a böngésző elkészíti a HTML objektumokból az úgynevezett dokumentum-objektum modellt - ezt a továbbiakban röviden csak DOM-nak fogjuk nevezni. A DOM fa (DOM tree) segítségével könnyen szemléltethetjük a HTML elemek hierarchikus viszonyait. Nézzünk egy egyszerű példát DOM fára!

Példa: Egy egyszerű HTML kód és a hozzá tartozó DOM fa

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<!DOCTYPE html>
<html lang="hu">
   <head>
      <title>DOM példa</title>
      <meta charset="UTF-8"/>
   </head>
   <body>
      <h1>Az oldal címe</h1>
      <img src="my-image.png" alt="Valami klassz kép"/>
      <p>
         <a href="https://u-szeged.hu">SZTE</a>
      </p>
   </body>
</html>

DOM fa példa

HTML objektumok viszonyai

Ahhoz, hogy a továbbiakban egyszerűen tudjunk beszélni a HTML objektumok viszonyairól, bevezetünk néhány fogalmat.

Ha az A objektum közvetlenül tartalmazza a B objektumot, akkor azt mondjuk, hogy az A objektum a B objektum szülője, a B objektum pedig A gyereke. Például a fenti kódban és az ahhoz tartozó DOM fában a <body> objektum a <h1>, <img> és <p> elemek szülője, vagy másképp mondva: a <h1>, <img> és <p> elemek a <body> gyerekei. Az viszont például nem igaz, hogy az <a> objektum a <body> gyereke lenne, hiszen itt a tartalmazás nem közvetlen.

Ha az A és B objektumok szülője megegyezik, akkor A és B egymás testvérei. Például a fenti kódban és az ahhoz tartozó DOM fában a <h1>, <img> és <p> objektumok egymás testvérei, hiszen mindhárom objektum szülője a <body>.

A DOM fa tetején lévő, szülővel nem rendelkező elemet gyökérelemnek nevezzük. A teljes HTML DOM-ban ez a gyökérelem mindig a <html> tag lesz (ugyanis ebbe ágyazunk be minden további HTML elemet).

A DOM gyakorlati jelentősége

Hamarosan látni fogjuk, hogy CSS-ben használunk olyan szelektorokat is, amelyek egymáshoz való DOM-beli viszonyaik alapján jelölnek ki HTML objektumokat.

Emellett a webes világban gyakran előfordul, hogy azután szeretnénk manipulálni a DOM-fát, miután a weboldal betöltődött (pl. szeretnénk egy objektumot módosítani vagy törölni, esetleg egy új objektumot akarunk a fába beszúrni). Erre biztosítanak lehetőséget a JavaScript DOM-műveletei. Ezen a kurzuson nem tárgyaljuk a JavaScriptet, viszont a Szkriptnyelvek kurzuson részletesen tanulhatunk a különböző DOM-manipulációs lehetőségekről.


Utolsó frissítés: 2024-02-10 17:23:02