Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

A weblapkészítés technikája (HTML5, CSS3) és ergonómiája / Táblázatok használata

Tanulási útmutató

Összefoglalás

Ebben a leckében megismerkedünk a táblázatok létrehozásának módjával, a cellák összevonásánának különböző módjaival.

Táblázatok használata

Táblázatokat gyakran használunk a szövegszerkesztési feladatok során is, hogy az adatokat átlátható módon, srokoba és oszlopokba rendezveprezentáljuk. A weblapkészítés során a táblázatokat gyakran arra is használták, hogy az oldal struktúráját ezzel alakítsák ki. Például a táblázat első sora volt a fejléc, a második sor két cellából állt, a bal oldali tartalmazta a menüt, a jobb oldali a tartalmat, és így tovább. A stíluslapokban rejlő lehetőségek ma már nem indokolják, hogy az oldal struktúrájának kialakítására, pusztán prezentációs célokból használjuk a táblázatokat, ez a megoldás ma már nem megfelelő. Vannak azonban olyan esetek, amikor természetesen nagyon előnyös a táblázatok használata.

Nézzük akkor a lehetőségeket sorjában, konkrét példákon bemutatva, csak ezek után térünk ki az egyes tageknél használt speciális attribútumok szerepére és használati módjára.

Példa egy egyszerű táblázat felépítésre – <table>, <tr>, <th>, <td>

Mielőtt az egyes tagek szerepét részletesebben bemutatjuk, nézzünk egy egyszerűbb példát, amin jól látszik, hogy ennek a négy tagnek mi a szerepe a táblázat kialakításában!

A táblázat megadása a <table> tag használatával lehetséges. A <table> és </table> tageken belül a <tr> és </tr> elemek között adhatjuk meg a táblázat sorait. A <td> elem a sorokon belüli adatcellák létrehozására szolgál. Az egyes sorok/oszlopok fejléceit a <th> tagek között adhatjuk meg, amelyek majd kiemelve (félkövér) jelennek meg alapesetben.

Példa - Egyszerűbb táblázat felépítés – Országok és fővárosaik

Ország Főváros
Afganisztán Kabul
Albánia Tirana
Algéria Algír

Forráskód
<table>
<!-- ez lesz az első sor a fejléc elemekkel-->
 <tr>
    <th>Ország</th>
    <th>Főváros</th>
</tr>
<!-- itt van az első sor vége-->
<!-- itt kezdődik a második sor -->
<tr>
    <td>Afganisztán</td>
    <td>Kabul</td>
</tr>
<!-- ez a harmadik sor -->
<tr>
    <td>Albánia</td>
    <td>Tirana</td>
</tr>
<tr>
    <td>Algéria</td>
    <td>Algír</td>
</tr>
</table>
Kapcsolódó ergonómiai elvek

Nagyon fontos, hogy a táblázatok fejléc elemeit ne egyszerűen csak vizuálisan emeljük ki (mondjuk félkövér megjelenítéssel), hanem a <th> elemet használjuk erre a célra!

Kapcsolódó akadálymentességi elvek

A vak látogatók számára egy bonyolultabb táblázat áttekintése nem egyszerű egy képernyőolvasó programmal, ezért mindent meg kell tennünk annak érdekében, hogy a táblázatokat minél precízebb módon adjuk meg a HTML5-ös tagek és paraméterek segítségével.

Majd később látni fogjuk, hogy a táblázatnak címet adhatunk, leírhatjuk a rövid összefoglalóját, a fejlécek esetén megmondhatjuk, hogy az egy sorra, vagy oszlopra vonatkozik, és így tovább.

A példa meghallgatása képernyőolvasó programmal

Először felolvassa a program, hogy hány sorból és oszlopból áll a táblázat, majd elkezdi felolvasni a tartalmát. Utána az hallható, hogy a táblázatcellák között elkezdtünk navigálni, és mindig az adott cella (és fejléc) tartalmát olvassa fel a program.

Vissza a tartalomjegyzékhez

Táblázat fejlécek irányának beállítása (scope), a táblázat felirata (<caption>)

Fejlesszük tovább az előző táblázatunkat! Legyen egy újabb oszlopa is, amelyben az ország népességét is feltüntetjük.

Adjunk egy feliratot a táblázatnak, amely jól leírja a tartalmát. Ezt a <caption> taggek tudjuk megtenni. Ez az elem közvetlenül a <table> elem után kell, hogy álljon, vagyis a <table> elem első gyereke kell, hogy legyen.

Forráskód
<table>
<caption>Országok fővárosa és népessége</caption>
<!-- táblázat kódjának folytatása -->

Mivel most egy országhoz több adat is tartozik, növelhetnénk a táblázat áttekinthetőségét, ha magukat az országneveket tartalmazó cellákat is fejléccellaként adnánk meg.

Vagyis a táblázatunk így jelenne meg:

Példa - <Caption> megadása és scope paraméter használata

Országok fővárosa és népessége
Ország Főváros Népesség
Afganisztán Kabul 25 500 100 fő
Albánia Tirana 2 831 741 fő
Algéria Algír 37 100 000 fő

A fenti példában láthatjuk, hogy bizonyos fejléccellák oszlopokra (Főváros, Népesség), mások viszont (az országnevek) sorokra vonatkoznak. Ez egy látó számára teljesen egyértelmű, sőt az is könnyen leolvasható, hogy a fejlécek metszéspontjában (pl. Algéria és Népesség) milyen adat található.

Kapcsolódó akadálymentességi elvek

Egy képernyőolvasó programot használó vak felhasználó nem tud abból kiindulni, hogy mi látható a képernyőn, ezért annak érdekében, hogy képernyőolvasóval is azonosítani lehessen azt, hogy egy adott cella milyen fejléccellák metszéspontjaiban találhatók, a fejlécelemeknél le kell írnunk, hogy azok egy sorra, vagy egy oszlopra érvényesek!

Erre találták ki a scope paramétert.

A th tag esetén a scope attribútummal adhatjuk meg, hogy az adott fejléc egy oszlopra (scope="col"), vagy egy adott sorra (scope="row") vonatkozik.

Ahhoz, hogy a táblázat cellái körül szegély is megjelenjen, használhatjuk a border paramétert a <table> tag esetén. Ennek 1 az értéke, ha szegélyt akarunk megjeleníteni, és üresen kell hagyni, ha nem élünk ezzel a vizuális megjelenéssel.

Megjegyzés

Stíluslapokkal sokkal esztétikusabban tudjuk formázni a táblázatokat, szebb szegélyeket is alkalmazhatunk, erre később nézünk példákat.

Forráskód
<table border="1">
<caption>Országok fővárosa és népessége</caption>
 <tr>
    <th scope="col">Ország</th>
    <th scope="col">Főváros</th>
    <th scope="col">Népesség</th>
</tr>
<tr>
    <th scope="row">Afganisztán</th>
    <td>Kabul</td>
    <td>25 500 100 fő</td>
</tr>
<tr>
    <th scope="row">Albánia</th>
    <td>Tirana</td>
    <td>2 831 741 fő</td>
</tr>
<tr>
    <th scope="row">Algéria</th>
    <td>Algír</td>
    <td>37 100 000 fő</td>
</tr>
</table>
A példa meghallgatása képernyőolvasó programmal

Hallható, hogy a szóközzel való tagolás a számoknál nem ad jó eredményt, mert így a számokat külön-külön olvassa fel a program.

Vissza a tartalomjegyzékhez

A táblázat struktúrájának precízebb megadása (<thead><tfoot><tbody>)

A konkrét példánkban csak egy pár sorból álló táblázatot adtunk meg, de ha a világ összes országának adatait felsorolnánk, akkor már egy hatalmas táblázattal lenne dolgunk. Egy ilyen, hosszabb táblázat esetén már érdemes kifinomultabb struktúrát alkalmaznunk.

A táblázat sorait fejlécekbe <thead>, láblécekbe <tfoot>, illetve törzsbe <tbody> szervezhetjük. Ez a fajta felosztás lehetővé teszi a böngészőprogramoknak, hogy a táblázat törzsét különválasszák a fejléctől és lábléctől. Ennek előnye például az lehet, hogy hosszabb táblázatok nyomtatásánál a fejléc és lábléc elemek minden kinyomtatott oldalon szerepelni fognak (amennyiben a böngésző támogatja ezt a funkciót).

Először a fejlécet (<thead>) kell megadnunk, azt követően pedig a láblécet (<tfoot>). Ezután adhatjuk meg a táblázat törzsét (<tbody>).

Példa - Táblázat tagolása fejlécre, láblécre és törzsre

Ország Főváros
Afganisztán Kabul
Albánia Tirana
Algéria Algír

Forráskód
<table border="1">
<caption>Országok fővárosa és népessége</caption>
<thead>
 <tr>
    <th scope="col">Ország</th>
    <th scope="col">Főváros</th>
    <th scope="col">Népesség</th>
</tr>
</thead>
<tfoot>
<tr>
     <td>Forrás: Wikipedia</td>
     <td></td>
     <td></td>
<!-- Itt igazából egy cellára lenne szükség, így ezeket össze kellene vonni. Erre nézünk példát később. -->
</tr>
</tfoot>
<tbody>
<tr>
    <th scope="row">Afganisztán</th>
    <td>Kabul</td>
    <td>25 500 100 fő</td>
</tr>
<tr>
    <th scope="row">Albánia</th>
    <td>Tirana</td>
    <td>2 831 741 fő</td>
</tr>
<tr>
    <th scope="row">Algéria</th>
    <td>Algír</td>
    <td>37 100 000 fő</td>
</tr>
</tbody>
</table>

A fenti példa láblécében most 3 cellát adtunk meg, igazából szerencsésebb lett volna egy olyan cella, ami három cella szélességű, vagyis össze kellett volna vonni a cellákat.

Erre nézünk példákat a következőkben.

Vissza a tartalomjegyzékhez

Cellák összevonása (colspan és rowspan paraméter, <colgroup>)

Az előző példában is láthattuk, hogy szükség lehet arra, hogy a szomszédos cellákat vízszintesen, vagy függőlegesen (vagy mindkét módon) összevonjuk. A vízszintes összevonáshoz a colspan, a függőlegeshez a rowspan paramétert kell használnunk. Ezt egyaránt alkalmazhatjuk a <td> és <th> tagtag-k sem.lendő -t kellett a cellába írni. A 9-es, 10-es Explorer esetében nem tudom, mi a helyzet, most épp nincs kéznél eknél is. Ha összevontunk cellákat, akkor a táblázatban már csak azokat a cellákat kell szerepeltetni, amelyeket nem érintett az összevonás.

Megjegyzés

A cellaösszevonások hatással lesznek a fejléccella hatásköreinek (scope) beállítására is, ezért az első példában még nem szerepeltetjük a scope paramétert.

Cellák összevonása vízszintesen (colspan)

Példa - Cellák összevonása vízszintesen (colspan)

Név Telefonszám
Vezetéknév Keresztnév Körzetszám Kapcsolási szám
Kovács Viktor 45 555465

Forráskód
<table border="1">
 <tr>
  <th colspan="2">Név</th>
  <th colspan="2">Telefonszám</th>
 </tr>
 <tr>
  <th>Vezetéknév</th>
  <th>Keresztnév</th>
  <th>Körzetszám</th>
  <th>Kapcsolási szám</th>
 </tr>
 <tr>
  <td>Kovács</td>
  <td>Viktor</td>
  <td>45</td>
  <td>555465</td>
 </tr>
</table>
Magyarázat

Az első sorban a colspan="2" paraméterrel állítottuk be, hogy két cellát össze kívánunk vonni. Emiatt a táblázat első sorában mindössze két <th> taget kell szerepeltetnünk.

Láthatjuk, hogy a fenti kód is látszólag a megfelelő eredményt adja, de érdemes lehet még precízebben megadni a táblázatunkat. Ennek később (pl. a táblázatok stíluslappal való szépítése) nagy hasznát vesszük. Ehhez azonban meg kell ismerkednünk a <col>, illetve <colgroup> taggel.

A <colgroup> taggel oszlopcsoportokat adhatunk meg, és azok tulajdonságait is beállíthatjuk. A <colgroup> tagnek a <caption> tag után, a <thead> tag előtt kell szerepelnie. A <colgroup> tagen belül szerepelhet a <col> tag is (ha a colgroup elemnek nincs span attribútuma), amely az egyes oszlopokba tartozó cellák tulajdonságait írja le.

Nézzük, hogy a példánk hogyan változik a <col> és <colgroup> használatával! A lehetőségek bemutatása miatt a korábbi táblázatot még egy oszloppal (Nem) kiegészítettük.

Példa - Colgroup és col használata

Név Telefonszám Nem
Vezetéknév Keresztnév Körzetszám Kapcsolási szám
Kovács Viktor 45 555465 Férfi

Forráskód
<table border="1">
<colgroup span="2"></colgroup>
<colgroup span="2"></colgroup>
<col>
 <tr>
  <th colspan="2">Név</th>
  <th colspan="2">Telefonszám</th>
  <th>Nem</th>
 </tr>
 <tr>
  <th>Vezetéknév</th>
  <th>Keresztnév</th>
  <th>Körzetszám</th>
  <th>Kapcsolási szám</th>
  <th></th>
 </tr>
 <tr>
  <td>Kovács</td>
  <td>Viktor</td>
  <td>45</td>
  <td>555465</td>
  <td>Férfi</td>
 </tr>
</table>
Magyarázat

Látható, hogy a table tag után egy <colgroup span="2"></colgroup> kódot helyeztünk el. Ezzel jelezzük, hogy az első két oszlop alkot egy oszlopcsoportot. A span paraméterrel adhatjuk meg, hogy hány oszlopot szeretnénk így csoportosítani. Ez az első oszlopcsoport az, ami a nevet tartalmazza. Ezt követi egy ugyanilyen kód, ez viszont már a Telefonszám mezőket csoportosítja. Az utolsó oszlop nincs csoportosítva, ott egyszerűen a <col> taget használtuk.

Fejléccellák akadálymentesítése oszlopcsoportok esetén

Azáltal, hogy oszlopcsoportot használtunk, és az összevont cellákban fejléccellák is szerepelnek, a <th> elem scope attribútumát is ennek megfelelően kell beállítani. Az oszlopcsoportok esetén a scope="colgroup" paramétert kell beállítani, a sima oszlopokban viszont marad a scope="col" paraméter megadása.

Példa - Colgroup és col használata, scope megadással

Név Telefonszám Nem
Vezetéknév Keresztnév Körzetszám Kapcsolási szám
Kovács Viktor 45 555465 Férfi

Forráskód
<table border="1">
<colgroup span="2"></colgroup>
<colgroup span="2"></colgroup>
<col>
 <tr>
  <th scope="colgroup" colspan="2">Név</th>
  <th scope="colgroup" colspan="2">Telefonszám</th>
  <th scope="col">Nem</th>
 </tr>
 <tr>
  <th scope="col">Vezetéknév</th>
  <th scope="col">Keresztnév</th>
  <th scope="col">Körzetszám</th>
  <th scope="col">Kapcsolási szám</th>
  <th></th>
 </tr>
 <tr>
  <td>Kovács</td>
  <td>Viktor</td>
  <td>45</td>
  <td>555465</td>
  <td>Férfi</td>
 </tr>
</table>
A példa meghallgatása képernyőolvasó programmal

A program először felolvassa a táblázatot, majd azt halljuk, ahogy navigáltunk az egyes cellák között.

Most nézzünk egy olyan példát, ahol függőeleges összevonás történt!

Cellák összevonása függőlegesen (rowspan)

Példa - Cellák összevonása függőlegesen (rowspan)

Név Titulus Dr.
Vezetéknév Kovács
Keresztnév Henrik

Forráskód
<table border="1">
 <tr>
  <th scope="row" rowspan="3">Név</th>
  <th scope="row">Titulus</th>
  <td>Dr.</td>
 </tr>  
<tr>
   <th scope="row">Vezetéknév</th>
   <td>Kovács</td>
 </tr>
<tr>
   <th scope="row">Keresztnév</th>
   <td>Henrik</td>
 </tr> 
</table>
Magyarázat

Az első sorban a rowspan="3" paraméterrel állítottuk be, hogy három cellát összevonunk függőlegesen. Emiatt a többi sorban csak a fennmaradó cellákat kellett megadnunk.

A példa meghallgatása képernyőolvasó programmal

A program először felolvassa a táblázatot, majd azt halljuk, ahogy navigáltunk az egyes cellák között.

Cellák összevonása (gyakorlat)

Gyakorlat

Az alábbi interaktív példában egy 4×4-es táblázatot helyeztünk el. Módosítsd a kódot a megfelelő összevonásokkal, hogy az alábbi felosztásban 9 cella maradjon. Az ábrának megfelelően sorszámozd a cellákat!

Interaktív példa

A következőkben újra áttekintjük a bemutatott tageket, a használható paraméterek felsorolásával és magyarázatával.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A tananyag az ELTE - PPKE informatika tananyagfejlesztési projekt (TÁMOP-4.1.2.A/1-11/1-2011-0052) keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.