“Innovation is not about saying yes to everything. It’s about saying NO to all but the most crucial features.” — Steve Jobs

Een layout grid met behulp van CSS tables

CSS Table Layout marks the end of complex CSS layout techniques and will be the final nail in the coffin of using HTML tables for layout.

Waarom de techniek met CSS floats niet meer voldoet

De traditionele manier om een grid te maken in CSS is eigenlijk een complete hack. We gebruiken floats, absolute posities, negatieve margins, CSS clear en andere trucjes. Het is allemaal erg complex geworden en daardoor ook moeilijker onderhoudbaar.

CSS table layout

In moderne browsers is het mogelijk hetzelfde resultaat te bereiken door gebruik te maken van CSS tables. Zelfs vanaf Internet Explorer versie 8 is het mogelijk deze nieuwe techniek te gebruiken.

Door CSS tables te gebruiken is het eindresultaat hetzelfde, maar de HTML en de CSS code is compacter en veel minder complex.

HTML fragment:

<div id="kolommen-margin">
    <div id="kolommen">
        <div id="kolom1"><p>...</p></div>
        <div id="kolom2"><p>...</p></div>
        <div id="kolom3"><p>...</p></div>
    </div>
</div>

CSS fragment:

#kolommen {
    display: table;
    width: 100%;
    border-collapse: separate;
    border-spacing: 15px;
}

#kolommen-margin {
    margin: -15px;
}

.kolom-1-3 {
    display: table-cell;
    width: 33%;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, .3);
}

Tabellen zijn toch fout?

Het table-element in HTML is een semantische structuur; het beschrijft wat data is. Spreadsheet data bijvoorbeeld kan prima weergegeven worden in een HTML tabel.

De CSS table is slechts een indicatie hoe iets eruit moet zien in de browser, het zegt niets over de betekenis van de data.

Internet Explorer versie 7 en ouder

Internet Explorer versie 7 en ouder ondersteunen niet de CSS table. Als deze oude browsers nog ondersteund moeten worden, zal specifiek voor deze browsers een alternatief verzonnen moeten worden.

Demo

Een demo van een flexibel layout met drie kolommen, met behulp van CSS tables:

http://sandbox.juurlink.org/csstables/

Resources

Boek: Everything you know about CSS is wrong!

  • Laatste update 16 feb 2011, 16:55 uur: Spacing van de cellen met behulp van border-spacing, zodat borders mogelijk zijn.

One Comment on “Een layout grid met behulp van CSS tables”

  1. 1 Tweets that mention Rob Juurlink » Blog Archive » Een layout grid met behulp van CSS tables -- Topsy.com said at 17:20 on February 16th, 2011:

    [...] This post was mentioned on Twitter by kortlangs and robjuurlink, robjuurlink. robjuurlink said: Een layout grid met behulp van CSS tables (Blog) – http://www.juurlink.org/2011/02/css-table-layout/ [...]


Leave a Reply