Tabeller på webben
Tabeller är fruktansvärt bra sätt att presentera information på, särskilt information i sifferform och när den beror på två saker. Typ en tidtabell där det beror på dag och tid.
| Måndag | Tisdag | Onsdag | Torsdag | Fredag | |
|---|---|---|---|---|---|
| 08 | Web | Pro | Möte | Web | Ledig |
| 09 | Web | Pro/Mat | Möte/Pro | Web/Mat | Mat |
| 10 | Planera | Mat | Mat | Mat | Mat |
| 11 | Mat | Web | Lunch | Lunch | Lunch |
| 12 | Mat/Lunch | Web | Planera | Planera | Planera |
| 13 | Planera | Ledig | Planera | Planera | Planera/Pro |
| 14 | Planera | Ledig | Planera | Planera | Pro |
| 15 | Möte | Ledig | Web | Pro | Ledig |
| 16 | Möte | Ledig | Web | Pro | Ledig |
Eller en resultattabell:
| Siffra | 100 | 1 000 | 1 000 000 |
|---|---|---|---|
| 1 | 15 | 171 | 166096 |
| 2 | 20 | 176 | 166474 |
| 3 | 13 | 176 | 167309 |
| 4 | 21 | 176 | 167289 |
| 5 | 16 | 176 | 166528 |
| 6 | 15 | 176 | 166314 |
Skapa en tabell
En tabell innehåller ett antal rader och ett antal kolumner. Rader är horizontella och kolumner är vertikala. Varje ruta i en tabell kallas för cell. Så en tabell med 3 rader och 4 kolumner har som regel 3×4=12 celler.
När du skapar en tabell så börjar du som med allt annat i HTML att du öppnar och stänger elementet:
<table>
</table>
Sen skapar du en tabell i HTML rad för rad med elementet: <tr> som står för "table row".
<table>
<tr>
</tr>
<tr>
</tr>
<tr>
</tr>
</table>
<!-- En tabell med tre rader -->
Nu har du en tom tabell med tre rader. För att fylla dem med innehåll så skapar du inte en hög med kolumner, utan istället skapar du celler till raderna. Du skapar en cell med elementet <td> som står för "table data".
<table>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<!-- En tabell med tre rader och fyra kolumner-->
Nu när du har skapat tabellen så kan du fylla den med data genom att skriva text mellan varje <td> och </td>-par.
<table>
<tr>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
| Norge | Ryssland | Kanada | Tyskland |
| Tyskland | Norge | Tyskland | USA |
| Kanada | Kanada | USA | Österrike |
Rubriker
En tabell är dock väldigt svårläst utan rubriker. För att skapa en rubrik så använder du elementet <th>. För att få in rubriker över kolumnerna korrekt behöver du lägga dem på en egen rad med <tr>. För att få in dem rätt bredvid raderna så lägger du till dem som om de vore en ny cell.
<table>
<tr> <!-- Den nya raden med rubriker-->
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
<tr>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
| 2018 | 2014 | 2010 | 2006 |
|---|---|---|---|
| Norge | Ryssland | Kanada | Tyskland |
| Tyskland | Norge | Tyskland | USA |
| Kanada | Kanada | USA | Österrike |
scope
Notera att du bör skriva om rubriken sitter över en kolumn eller vid en rad med attributet scope.
<table>
<tr>
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
<tr>
<th scope="row">1</th> <!--Rubrik för raden-->
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<th scope="row">2</th> <!--Rubrik för raden-->
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<th scope="row">3</th> <!--Rubrik för raden-->
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
| 2018 | 2014 | 2010 | 2006 | |
|---|---|---|---|---|
| 1 | Norge | Ryssland | Kanada | Tyskland |
| 2 | Tyskland | Norge | Tyskland | USA |
| 3 | Kanada | Kanada | USA | Österrike |
Nu när du har lagt till en rubrik på varje rad så har vi i praktiken 5 kolumner. Då behöver vi justera antalet celler i den översta raden och lägga till en rubrik för kolumnen med rad-rubriker.
<table>
<tr>
<th scope="col">Placering</th>
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
<tr>
<th scope="row">1</th>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
| Placering | 2018 | 2014 | 2010 | 2006 |
|---|---|---|---|---|
| 1 | Norge | Ryssland | Kanada | Tyskland |
| 2 | Tyskland | Norge | Tyskland | USA |
| 3 | Kanada | Kanada | USA | Österrike |
Tabelltitel
Om du vill lägga till en titel eller en caption på sin tabell använder du dig utav elementet <caption> inuti tabellen.
<table>
<caption>Medaljplaceringar i vinter-OS</caption>
<tr>
<th scope="col">Placering</th>
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
<tr>
<th scope="row">1</th>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
| Placering | 2018 | 2014 | 2010 | 2006 |
|---|---|---|---|---|
| 1 | Norge | Ryssland | Kanada | Tyskland |
| 2 | Tyskland | Norge | Tyskland | USA |
| 3 | Kanada | Kanada | USA | Österrike |
Semantik
För att hjälpa personer med skärmuppläsning så kan du använda dig utav elementen <thead>, <tbody> samt <tfoot> för att förtydliga strukturen på din tabell.
<thead>
I det här elementet lägger du in rubriker och annan information som beskriver tabeller, lite som <head>. Det här elementet har ingen inverkan på utseendet som standard, men det kan man ändra på med CSS.
<table>
<caption>Medaljplaceringar i vinter-OS</caption>
<thead>
<tr>
<th scope="col">Placering</th>
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
</thead>
<tr>
<th scope="row">1</th>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
<tbody>
Precis som i <body> så är det här själva innehållet ska vara. Så all data ska in i <tbody>.
<table>
<caption>Medaljplaceringar i vinter-OS</caption>
<thead>
<tr>
<th scope="col">Placering</th>
<th scope="col">2018</th>
<th scope="col">2014</th>
<th scope="col">2010</th>
<th scope="col">2006</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Norge</td>
<td>Ryssland</td>
<td>Kanada</td>
<td>Tyskland</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Tyskland</td>
<td>Norge</td>
<td>Tyskland</td>
<td>USA</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Kanada</td>
<td>Kanada</td>
<td>USA</td>
<td>Österrike</td>
</tr>
</tbody>
</table>
<!-- En tabell över topp tre i de fyra senaste olympiska vinterspelen-->
<tfoot>
En footer som du kan använda om du har någon sorts avslutande information i botten av din tabell. Till exempel om du räknar ut någon summa av alla värdena ovanför.
Sammanslagna celler
Ibland vill du slå ihop celler så att de sträcker sig över flera rader
eller kolumner. Då kan du lägga till attributen colspan eller
rowspan beroende på om de ska sträcka sig över kolumner eller
rader.
<table>
<tr>
<td>1 cell</td>
<td colspan="2">2 cell</td>
<td rowspan="2">2 cell</td>
</tr>
<tr>
<td rowspan="3">3 cell</td>
<td>1 cell</td>
<td>1 cell</td>
</tr>
<tr>
<td rowspan="2" colspan="2">4 cell</td>
<td>1 cell</td>
</tr>
<tr>
<td>1 cell</td>
</tr>
</table>
| 1 cell | 2 cell | 2 cell | |
| 3 cell | 1 cell | 1 cell | |
| 4 cell | 1 cell | ||
| 1 cell | |||
När man slår samman celler så gäller det att hålla tungan rätt i mun så att man faktiskt får rätt på antalet celler och deras placering.