Tabeller
Tabeller organiserer data i rader og kolonner. Bruk dem for tabulære data, ikke for layout.
Grunnleggende tabell
<table>
<tr>
<th>Navn</th>
<th>Alder</th>
</tr>
<tr>
<td>Anna</td>
<td>25</td>
</tr>
<tr>
<td>Erik</td>
<td>30</td>
</tr>
</table>
| Navn | Alder |
|---|---|
| Anna | 25 |
| Erik | 30 |
Tabell-elementer
| Element | Beskrivelse |
|---|---|
<table> |
Selve tabellen |
<tr> |
Table row (rad) |
<th> |
Table header (overskriftscelle) |
<td> |
Table data (datacelle) |
Tabell med struktur
For bedre organisering, bruk thead, tbody og tfoot:
<table>
<thead>
<tr>
<th>Produkt</th>
<th>Pris</th>
<th>Antall</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bok</td>
<td>299 kr</td>
<td>2</td>
</tr>
<tr>
<td>Penn</td>
<td>49 kr</td>
<td>5</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Total</td>
<td>843 kr</td>
<td>7</td>
</tr>
</tfoot>
</table>
| Element | Beskrivelse |
|---|---|
<thead> |
Overskriftsrader |
<tbody> |
Hovedinnhold |
<tfoot> |
Bunntekst/summering |
Fordeler
- Bedre for skjermlesere
- Lettere å style med CSS
<tfoot>vises nederst selv om den skrives før<tbody>
Tabelltittel
<table>
<caption>Elevresultater høst 2024</caption>
<thead>
...
</thead>
<tbody>
...
</tbody>
</table>
<caption> vises over tabellen og beskriver innholdet.
Slå sammen celler
Colspan - slå sammen kolonner
<table>
<tr>
<th colspan="2">Navn</th>
<th>Alder</th>
</tr>
<tr>
<td>Fornavn</td>
<td>Etternavn</td>
<td>År</td>
</tr>
</table>
┌───────────────────┬───────┐
│ Navn │ Alder │
├─────────┬─────────┼───────┤
│ Fornavn │Etternavn│ År │
└─────────┴─────────┴───────┘
Rowspan - slå sammen rader
<table>
<tr>
<td rowspan="2">Mandag</td>
<td>09:00 - Matte</td>
</tr>
<tr>
<td>10:00 - Norsk</td>
</tr>
<tr>
<td>Tirsdag</td>
<td>09:00 - Engelsk</td>
</tr>
</table>
┌─────────┬────────────────┐
│ │ 09:00 - Matte │
│ Mandag ├────────────────┤
│ │ 10:00 - Norsk │
├─────────┼────────────────┤
│ Tirsdag │ 09:00 - Engelsk│
└─────────┴────────────────┘
Kombinert
<table>
<tr>
<th colspan="2" rowspan="2">Hjørne</th>
<th colspan="2">Periode 1</th>
</tr>
<tr>
<th>Uke 1</th>
<th>Uke 2</th>
</tr>
<tr>
<th rowspan="2">Avd A</th>
<th>Team 1</th>
<td>100</td>
<td>120</td>
</tr>
<tr>
<th>Team 2</th>
<td>90</td>
<td>110</td>
</tr>
</table>
Tilgjengelighet
Scope-attributt
Forteller skjermlesere hva overskriften gjelder:
<table>
<tr>
<th scope="col">Navn</th>
<th scope="col">Alder</th>
</tr>
<tr>
<th scope="row">Anna</th>
<td>25</td>
</tr>
</table>
| Verdi | Beskrivelse |
|---|---|
col |
Overskrift for kolonne |
row |
Overskrift for rad |
colgroup |
Overskrift for kolonnegruppe |
rowgroup |
Overskrift for radgruppe |
Headers-attributt
For komplekse tabeller:
<table>
<tr>
<th id="name">Navn</th>
<th id="age">Alder</th>
</tr>
<tr>
<td headers="name">Anna</td>
<td headers="age">25</td>
</tr>
</table>
Styling med CSS
Grunnleggende stil
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
Stripete rader
Med :nth-child() kan du style annenhver rad:
Hover-effekt
Responsiv tabell
Praktiske eksempler
Karakteroversikt
<table>
<caption>Karakterer vår 2024</caption>
<thead>
<tr>
<th scope="col">Fag</th>
<th scope="col">Karakter</th>
<th scope="col">Poeng</th>
</tr>
</thead>
<tbody>
<tr>
<td>Matematikk</td>
<td>5</td>
<td>85</td>
</tr>
<tr>
<td>Norsk</td>
<td>4</td>
<td>72</td>
</tr>
<tr>
<td>Engelsk</td>
<td>5</td>
<td>88</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Snitt</td>
<td>4.7</td>
<td>82</td>
</tr>
</tfoot>
</table>
Timeplan
<table>
<caption>Timeplan mandag-fredag</caption>
<thead>
<tr>
<th>Tid</th>
<th>Mandag</th>
<th>Tirsdag</th>
<th>Onsdag</th>
<th>Torsdag</th>
<th>Fredag</th>
</tr>
</thead>
<tbody>
<tr>
<th>08:00</th>
<td>Matte</td>
<td>Norsk</td>
<td>Engelsk</td>
<td>Matte</td>
<td>Gym</td>
</tr>
<tr>
<th>09:00</th>
<td>Matte</td>
<td>Norsk</td>
<td>Engelsk</td>
<td>Naturfag</td>
<td>Gym</td>
</tr>
</tbody>
</table>
Prisliste
<table>
<thead>
<tr>
<th>Plan</th>
<th>Pris/mnd</th>
<th>Funksjoner</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gratis</td>
<td>0 kr</td>
<td>Grunnleggende</td>
</tr>
<tr>
<td>Pro</td>
<td>99 kr</td>
<td>Alt inkludert</td>
</tr>
<tr>
<td>Business</td>
<td>299 kr</td>
<td>Ubegrenset</td>
</tr>
</tbody>
</table>
Oppsummering
| Element | Beskrivelse |
|---|---|
<table> |
Tabellen |
<caption> |
Tabelltittel |
<thead> |
Overskriftsseksjon |
<tbody> |
Hovedinnhold |
<tfoot> |
Bunnseksjon |
<tr> |
Rad |
<th> |
Overskriftscelle |
<td> |
Datacelle |
colspan |
Slå sammen kolonner |
rowspan |
Slå sammen rader |
scope |
Tilgjengelighet |
Ikke bruk tabeller for layout
Tabeller skal kun brukes for tabulære data. Bruk CSS Flexbox eller Grid for sidelayout.