HTML & CSS för nybörjare

HTML & CSS för nybörjare (Del 08): Tabeller (02)

Alla videor i handledningen

Först vill jag visa er hur man kan ansluta celler kolumnvis inom en rad. På så sätt kan man få en kolumn inom den aktuella raden att sträcka sig över flera kolumner.

Ett exempel:

<table border="1">
   <tr>
      <th colspan="2">Tider</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 ord om det använda th-elementet. Genom detta element markeras rubrikceller. Webbplatser visar vanligtvis dessa celler feta och centrerade. Och här är resultatet i webbläsaren:

HTML & CSS för nybörjare (del 08): Tabeller (02)

Inom den inledande th sätts attributet colspan. Som värde förväntas antalet kolumner som den aktuella cellen ska sträcka sig över. Se till att antalet angivna kolumner är korrekt, annars kan det leda till oönskade resultat. I det aktuella exemplet ska rubrikraden markerad av th sträcka sig över två kolumner. Inom de övriga två raderna innehåller varje två rader.

En anteckning relaterat till att ansluta rader. Tilldela tabellerna en ram (border) under utvecklingsfasen. Då kan du direkt se om anslutningen fungerar som önskat.

Celler i en kolumn ansluta radvis

Genom attributet rowspan kan flera celler i en kolumn anslutas. Den aktuella cellen sträcker sig sedan över flera rader i kolumnen. Här är ett exempel igen:

<table border="1">
   <tr>
      <th rowspan="2">Färg</th>
      <td>Blå</td>
   </tr>
   <tr>
      <td>Grön</td>
   </tr>
   <tr>
      <th rowspan="2">Storlek</th>
      <td>1,70</td>
   </tr>
   <tr>
      <td>1,80</td>
   </tr>
</table>

I webbläsaren ser det ut så här:

HTML & CSS för nybörjare (Del 08): Tabeller (02)



Attributet rowspan tilldelas ett numeriskt värde. Detta bestämmer slutligen antalet rader i en kolumn som en cell ska sträcka sig över. Här gäller naturligtvis även att det angivna antalet rader faktiskt bör stämma.

Celler ansluta samtidigt rad- och kolumnvis

De två attributen rowspan och colspan kan också kombineras. På så sätt kan celler definieras som sträcker sig över flera rader och kolumner samtidigt. Även detta kan bäst illustreras med ett exempel.

<table border="1">
   <tr>
      <th colspan="2" rowspan="2">Lägenhet</th>
      <td>5 rum</td>
   </tr>
   <tr>
      <td>154 kvm</td>
   </tr>
   <tr>
      <td>Charlottenburg</td>
      <td>Parkering</td>
      <td>Golvvärme</td>
   </tr>
</table>



I webbläsaren ger det följande resultat:

HTML & CSS för nybörjare (Del 08): Tabeller (02)



När du kombinerar de två attributen är det självklart också viktigt att se till att antalet celler matchar korrekt i slutändan.

Märka tabeller

Ett mycket intressant sätt att göra tabeller mer begripliga är genom caption-elementet. Genom detta kan en titel eller en beskrivning läggas till i en tabell. Innehållet i caption visas utanför tabellen även om dess definition sker i tabellen.

Här är en typisk användning för caption:

HTML & CSS för nybörjare (Del 08): Tabeller (02)



Ovanför tabellen visas en tabellrubrik. Rubriken är standardmässigt centrerad ovanför tabellen. Det kan förstås ändras individuellt med CSS.

caption-elementet definieras direkt efter öppnande <table>.

Här är den fullständiga syntaxen för det tidigare visas exemplet:

<table border="1">
   <caption>Mediedata</caption>
   <colgroup><col /><col /><col /><colgroup> 
   <thead>
      <tr>
         <th>Ämne</th>
         <th>Visningar</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>12 123</td>
         <td>+</td>
      </tr>
      <tr>
         <td>JavaScript</td>
         <td>11 546</td>
         <td>+</td>
      </tr>
   </tbody>
</table>

Skapa tabeller

För att skapa tabeller fanns det många attribut i tidigare versioner av HTML. Här är några exempel på saker som kunde styras med hjälp av attribut. (Självklart stöder webbläsarna fortfarande dessa attribut idag. I HTML5 bör de dock inte längre användas).

• Yttre ram

• Inre tabellramar

• Bredd och höjd

• Rutnätlinjer

• Justering av cellinnehåll

• Färger

• Bakgrundsbilder

Ni ser att faktiskt allt kan styras med hjälp av motsvarande HTML-attribut. Följande exempel visar en tabell där dessa möjligheter användes omfattande:

<table border="1">
   <tr>
      <td width="200" height="100" bgcolor="#999933">Ett</td>
      <td width="200" bgcolor="#00ffff">Två</td>
      <td width="200">Tre</td>
   </tr>
   <tr bgcolor="#ff00ff">
      <td height="100">Fyra<</td>
      <td bgcolor="#996666">Fem</td>
      <td bgcolor="#003333">Sex</td>
   </tr>
 </table>



Genom att titta på resultatet erhålls det önskade resultatet.

HTML & CSS för nybörjare (Del 08): Tabeller (02)

Men även om det ser ut som det ska, är den underliggande syntaxen allt annat än effektiv. Det är bättre att styra tabellattributen med CSS. Tack vare nya CSS-egenskaper kan man inte bara ersätta de gamla attributen med modern syntax. Ytterligare funktionaliteter är också möjliga. Till exempel kan man numera enkelt färga tabellrader växelvis.

HTML & CSS för nybörjare (Del 08): Tabeller (02)

I de tidigare HTML- och CSS-tiderna var man tvungen att göra omfattande kodmanipulationer för ett sådant resultat. Om man nu konsekvent nyttjar de möjligheter som CSS numera erbjuder, är något sådant mycket enkelt att genomföra.

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



Som redan beskrivits tidigare kommer jag att gå in mer ingående på CSS inom ramen för denna serie.