HTML & CSS for nybegynnere

HTML & CSS for nybegynnere (Del 08): Tabeller (02)

Alle videoer i opplæringen HTML & CSS for nybegynnere

Først vil jeg vise dere hvordan celler i en rad kan kobles sammen kolonnevis. Dette gjør det mulig for en kolonne i den aktuelle raden å strekke seg over flere kolonner.

Et eksempel:

<table border="1">
   <tr>
      <th colspan="2">Tidspunkter</th>
   </tr>
   <tr>
      <td>11.4.2014</td>
      <td>12.4.2012</td>
   </tr>
   <tr>
      <td>13.4.2014</td>
      <td>14.4.2014</td>
   </tr>
   <tr>
      <td>15.4.2014</td>
      <td>16.4.2014</td>
   </tr>
</table>

Først et ord om det her brukte th-elementet. Ved hjelp av dette elementet markeres hodeseller. Nettlesere viser vanligvis disse cellene i fet og sentrert form. Og her er resultatet i nettleseren:

HTML & CSS for nybegynnere (Del 08): Tabeller (02)

I det innledende th blir attributtet colspan satt. Verdien som forventes er antall kolonner cellen i øyeblikket skal strekke seg over. Pass på at antallet oppgitte kolonner stemmer, ellers kan det oppstå grimme resultater. I dette eksempelet skal hodesellen markert med th strekke seg over to kolonner. Innenfor de to andre radene er det igjen to rader hver.

Et annet tips i forbindelse med å koble sammen rader. Gi tabellene en ramme (border) under utviklingsfasen. Da ser dere alltid direkte om sammenkoblingen faktisk fungerer som ønsket.

Koble celler i en kolonne radvis

Ved hjelp av attributtet rowspan kan flere celler i en kolonne kobles sammen. Den aktuelle cellen strekker seg deretter over flere rader innenfor kolonnen. Også her et eksempel:

<table border="1">
   <tr>
      <th rowspan="2">Farge</th>
      <td>Blå</td>
   </tr>
   <tr>
      <td>Grønn</td>
   </tr>
   <tr>
      <th rowspan="2">Størrelse</th>
      <td>1,70</td>
   </tr>
   <tr>
      <td>1,80</td>
   </tr>
</table>

I nettleseren ser det da slik ut:

HTML & CSS for nybegynnere (Del 08): Tabeller (02)



Til attributtet rowspan tildeles en numerisk verdi. Denne bestemmer til slutt antallet rader innenfor en kolonne som en celle skal strekke seg over. Også her gjelder det selvfølgelig at antallet oppgitte rader bør stemme.

Koble celler samtidig rad- og kolonnevis

De to attributtene rowspan og colspan kan for øvrig kombineres. Dette gjør det mulig å definere celler som strekker seg samtidig over flere rader og kolonner. Dette vises også best ved hjelp av et eksempel.

<table border="1">
   <tr>
      <th colspan="2" rowspan="2">Leilighet</th>
      <td>5 rom</td>
   </tr>
   <tr>
      <td>154 kvm</td>
   </tr>
   <tr>
      <td>Charlottenburg</td>
      <td>Parkering</td>
      <td>Gulvvarme</td>
   </tr>
</table>



Et blikk i nettleseren gir følgende resultat:

HTML & CSS for nybegynnere (Del 08): Tabeller (02)



Ved kombinasjonen av de to attributtene er det selvfølgelig også viktig å være nøye, slik at antallet celler til slutt stemmer.

Gi tabeller en tittel

En veldig interessant måte å gjøre tabeller mer forståelige på, er ved hjelp av caption-elementet. For dette kan du legge til en overskrift eller en forklaring til en tabell. Innholdet i caption vises utenfor tabellen, selv om definisjonen skjer i tabellen.

Her er en typisk anvendelse for caption:

HTML og CSS for nybegynnere (Del 08): Tabeller (02)



Over tabellen vises en tabelloverskrift. Standardinnstillingen er at overskriften er sentrert øverst i tabellen. Dette kan selvfølgelig endres individuelt via CSS.

caption-elementet defineres direkte bak den innledende <table>.

Her er den komplette syntaksen for det tidligere viste eksemplet:

<table border="1">
   <caption>Mediedata</caption>
   <colgroup><col /><col /><col /><colgroup> 
   <thead>
      <tr>
         <th>Tema</th>
         <th>Visninger</th>
         <th>Trend</th>
      </tr>
   <thead>
   <tfoot> 
      <tr>
         <td colspan="3">Per juni 2014</td>
      </tr>
   <tfoot> 
   <tbody>
      <tr>
         <td>HTML5</td>
         <td>12.245</td>
         <td>+</td>
      </tr>
      <tr>
         <td>CSS3</td>
         <td>12123</td>
         <td>+</td>
      </tr>
      <tr>
         <td>JavaScript</td>
         <td>11.546</td>
         <td>+</td>
      </tr>
   </tbody>
</table>

Designe tabellene

For å designe tabeller er det i tidligere HTML-versjoner mange attributter. Her er noen eksempler på ting som kunne styres ved hjelp av attributter. (Selvfølgelig støtter nettleserne disse attributtene fortsatt i dag. I HTML5 bør de imidlertid ikke lenger brukes).

• Ytre ramme

• Indre bordrammer

• Bredde- og høydeangivelser

• Rutenettlinjer

• Celletilholdets justering

• Farger

• Bakgrunnsbilder

Dere ser allerede at alt faktisk kan styres ved hjelp av de tilsvarende HTML-attributtene. Følgende eksempel viser en tabell der disse mulighetene er grundig brukt:

<table border="1">
   <tr>
      <td width="200" height="100" bgcolor="#999933">Eins</td>
      <td width="200" bgcolor="#00ffff">Zwei</td>
      <td width="200">Drei</td>
   </tr>
   <tr bgcolor="#ff00ff">
      <td height="100">Vier<</td>
      <td bgcolor="#996666">Fünf</td>
      <td bgcolor="#003333">Sechs</td>
   </tr>
 </table>



En titt på resultatet gir det ønskede resultatet.

HTML & CSS for nybegynnere (Del 08): Tabeller (02)

Men selv om det ser ut som det skal, er syntaksen bak alt annet enn effektiv. Det er bedre å kontrollere tabellegenskapene med CSS. Takk være nye CSS-egenskaper kan man ikke bare erstatte de gamle attributtene med moderne syntaks. Ekstra funksjonaliteter kan også implementeres. For eksempel kan en nå enkelt farge tabellrader vekselvis.

HTML & CSS for nybegynnere (Del 08): Tabeller (02)

I tidligere HTML- og CSS-tider var det nødvendig å gjøre store kodemessige verdrehinger for et slikt resultat. Hvis man nå konsekvent benytter seg av de mulighetene CSS tilbyr, er noe slikt enkelt gjennomførbart.

tr:nth-child(even) {
   background-color: #fd9d5d;
}
 tr:nth-child(odd) {
   background-color: #c0f390;
}
 table {
   border-spacing: 0px;
}



Som allerede nevnt flere ganger, vil jeg gå grundig gjennom CSS som en del av denne serien.