HTML & CSS kezdőknek

HTML és CSS kezdőknek (Rész 07): Táblázatok (01)

A bemutató összes videója HTML & CSS kezdőknek

Táblázatok viszonylag bonyolult szerkezetek, amelyek sorokból és oszlopokból állnak. A táblázat külső váza mindig a table elemet alkotja.

<table>
…
</table>

Ennek az elemnek a keretein belül történik a tábla valódi meghatározása. Egyébként ajánlott egy keretet hozzárendelni az HTML-ben történő táblázat elkészítése közben. Így könnyebben nyomon követhető, hogy a sorok és oszlopok pontosan hol futnak. Ehhez az indító <table> elemben az border="1" attribútum-érték párost kell hozzárendelni. (Figyelem: Az border attribútumot nem ajánlott használni HTML-ben. Ehelyett a megfelelő CSS tulajdonságokra kell támaszkodni. Erről azonban később lesz szó).

<table border="1">
…
</table>



Folytatjuk a táblázat sorainak meghatározásával. Ezt az tr elem segítségével lehet megtenni.

<table border="1">
   <tr></tr>
</table>



Ez azonban még nem vezet a kívánt kimenethez. A következő lépésben a oszlopokat kell definiálni. Ezt újra a td elem segítségével tehetjük meg.

<table border="1">
   <tr>
      <td></td>
   </tr>
</table>

Most már definiálhatjátok az első táblázattartalmat. Ezt a <td> és </td> között kell meghatározni.

<table border="1">
   <tr>
      <td>Tartalom 1</td>
   </tr>
</table>



Most már érdemes megnézni az eredményt a böngészőben.

HTML és CSS kezdőknek (Rész 07): Táblázatok (01)

Ez még korántsem túl látványos, hiszen jelenleg a tábla csak egy cellából áll. Most hozzáadhattok még egy oszlopot. Ezt újra egy td elem segítségével tehetitek meg. Ügyeljetek arra, hogy ezt a tr elemen belül határozzátok meg.

<table border="1">
   <tr>
      <td>Tartalom 1</td>
      <td>Tartalom 2</td>
   </tr>
</table>



Itt ismét egy pillantás az eredményre.

HTML és CSS kezdőknek (Rész 07): Táblázatok (01)

További sorok hozzáadásához egyszerűen hozzá kell adni egy további tr elemet, amelyben az újabb td elemeket lehet meghatározni.

Itt ismét egy példa:

<table border="1">
   <tr>
      <td>Tartalom 1</td>
      <td>Tartalom 2</td>
   </tr>
   <tr>
      <td>Tartalom 3</td>
      <td>Tartalom 4</td>
   </tr>
</table>



Egy pillantás az eredményre a böngészőben:

HTML & CSS kezdőknek (Rész 07): Táblázatok (01)



Ezen módszerrel tehát bonyolultabb táblázatokat is létrehozhattok.

Fejrész, Törzs és Lábrész megadása

A táblázatok logikai részekre oszthatók. Ezek egy fejrészt, egy vagy több adatrészt és egy lábrészt foglalhatnak magukban. A következő példa mutatja, hogyan is nézhet ki ez:

<table border="1">
  <thead>
    <tr>
      <th>Indulás</th>
      <th>Érkezés</th>
      <th>Peron</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <td>Berlin</td>
      <td>Stralsund</td>
      <td>5</td>
    </tr>
  </tfoot>
  <tbody>
    <tr>
      <td>Berlin</td>
      <td>Hamburg</td>
      <td>1</td>
    </tr>
    <tr>
      <td>München</td>
      <td>Berlin</td>
      <td>3</td>
    </tr>
  </tbody>
</table>

A böngészőben ez látszódik:

HTML & CSS kezdőknek (Rész 07): Táblázatok (01)



Az így meghatározott részeknek nyilvánvalóan nincs vizuális hatása. Felmerül egy kérdés: Miért kell tehát erőfeszítést tenni ezeknek a részeknek a meghatározására? Két jó oka van ennek:

• CSS segítségével a részek különböző formátumban jeleníthetők meg igény szerint.

• A böngészők képesek hosszú táblázatok nyomtatásakor az összes oldalon megismételni a táblázat fej- és lábrészét.

A táblázat fejezetét <thead> nyitja meg. Ezt követik a táblázathoz tartozó fejrégió sorai. Ne felejtsétek el lezárni a fejrégiót </thead> elemmel.

Ha a táblázatnak lábrésze is kell, az feltétlenül meg kell előznie a törzsrész meghatározását. A lábrészt a <tfoot> eleme nyitja, melyet a lábrégiónak tartozó egy vagy több sor követhet. Zárjátok le a lábrészt a </tfoot> elemmel.

A törzsrész lényegi részét a tbody elem határozza meg. Ez a tbody többször is előfordulhat. A törzsrész mindig a </tbody> elem zárja le.

Miért lenne például egy táblázatban több tbody elem? Erre jó példa lehet a Bundesliga táblázata. Egy ilyen táblázatban általában több részleg van.

• Bajnok

• Bajnokok Ligája résztvevők

• Bajnokok Ligája-selejtezős

• Európa Liga résztvevők

• Szürke középmezőny

• Kiesés ellen védekező hely

• Kiesők

Minden ilyen részleget egy külön tbody elembe lehetne csomagolni, majd ezeket CSS segítségével különböző módon formázni.

Oszlopok előre meghatározása

Hogyan jelenik meg a táblázat a böngészőkben, természetesen elsősorban attól függ, hogy hány sor és oszlop van jelen. A tábla megjelenítése folyamata azonban nem olyan egyszerű a böngészők számára. Valójában a böngészőnek mindig teljesen be kell olvasnia a teljes táblázatot, mielőtt megjeleníthetné azt. Különösen hosszú táblázatok esetén ez természetesen bizonyos időt igénybe vehet. Ezt a problémát el lehet kerülni a böngészőnek közvetlenül közölve, hogy valójában hány oszlopból áll a táblázat.

<table>
   <colgroup span="2"></colgroup>
   <tr>
     <th>ISBN</th>
     <th>Cím</th>
     <th>Ár</th>
   </tr>
   <tr>
     <td>23223423434</td>
     <td>Majdnem mindent magába foglaló rövid történet</td>
     <td>29,95 euró</td>
   </tr>
 </table>



Az colgroup csoport _hárítja el a növekmény-megjelöléseket. Megjegyzés, hogy a colgroup számára a korábbi HTML verziókban elérhető attribútumok többsége már nem engedélyezett az HTML5-ben. Ezek közül most már csak a span attribútumot engedélyezik. A span az elemek számát várja értékként, amelyek a táblázatban szerepelnek.

A colgroup elem közvetlenül az indító <table> mögött helyezkedik el. Az oszlopokat magukat az egyes col elemek határozzák meg.

A colgroup használatakor alapvetően két lehetőség van:

• A span attribútum használatával

• A span attribútum nélkül

Ha nem használunk span attribútumot, akkor minden oszlop esetében, amelyre az oszlopcsoporthoz tartozó oszlopok kiterjednek, külön-külön definiálnunk kell egy-egy col elemet a colgroup elemen belül. Vegyük figyelembe, hogy a col önálló elem.

<table>
   <colgroup>
   <col />
   <col />
 </colgroup>
   <tr>
     <th>ISBN</th>
     <th>Cím</th>
     <th>Ár</th>
   </tr>
   <tr>
     <td>23223423434</td>
     <td>Majdnem mindent magába foglaló rövid történet</td>
     <td>29,95 euró</td>
   </tr>
 </table>



Egyébként van egy vegyes forma is.

<table> 
 <colgroup> 
 <col> 
 </colgroup> 
 <colgroup span="2"></colgroup>
 …



Ez mindig praktikus, amikor egy oszlopot külön kell előre meghatározni, de a többit egy csoportba szeretnénk vonni.