Kijk mama, zonder tabellen
Gisteren deed ik het nog, opmaak met behulp van tabellen bedoel ik, vandaag weet ik beter. Of eigenlijk toch niet?
Ik beken: lange tijd deed ik niet anders dan al m’n webpagina’s
positioneren met behulp van een tabel. Nou ja ... ééntje? Meestal
werden het er drie, vier of vijf voordat de pagina af was. Het kan een waarachtig
labyrint vormen: zo’n spannende, geneste spaghetti van <tr> en <td> tags
waar je heerlijk in kunt verdwalen. Het werkt wel, maar er moet niet
toevallig ergens een < of een > omvallen. Want dat staat garant voor uren
puzzelplezier om de gebroken code weer aan elkaar te lijmen.
Het is nu 2005 en tabellen voor positionering zijn inmiddels zoooo anno steentijd. Elke zichzelf respecterende codeknager heeft van semantisch-web orakel Jeffrey Zeldman te horen gekregen dat het zo niet hoort. Want tabellen zijn bedoeld voor tabulaire data en nergens anders voor. Dus je bent een fossiel als je nog steeds probeert om er je kicken geslice-te bannerafbeelding en multi-kolom layout correct mee uit te lijnen.
Bekeerd
Zo’n anderhalf jaar geleden ben ik bekeerd tot het ontwerpen van pagina’s met behulp van stijlbladen. Daarvoor deed ik wel wat met css, maar veel meer dan de grootte en het type font bepalen of de kleur van een tekstje kwam ik niet. Positionering met css? Nahhhhhh!!! Veel te lastig. En tabellen werken toch prima? De tutorials en discussies op Zeldman’s A List Apart en de vaak inspirerende voorbeelden op CSS Zen Garden hebben hier verandering in gebracht. Anno nu pieker ik er niet meer over om m’n webs anders op te maken dan met behulp van zo’n heersend stukje stijlbladcode. En als m’n pagina’s niet semantisch verantwoord zijn krijg ik ogenblikkelijk vlekken in m’n nek.
Ketterij
Toch begin ik steeds meer te denken dat het evangelie-van-de-stijlblad-opmaak op bepaalde punten even ’gekunsteld’ en ’verkeerd’ is als de tabel-opmaak. Wat zeg je daar? Heiligschennis! Ketterij!!
Laat me dit uitleggen. Tabellen
zijn taboe als ze geen semantische betekenis hebben. Prima. Maar waarom zijn <div> tags
om inhoud te positioneren wel semantisch verantwoord? Mijns inziens is er geen
wezenlijk verschil. Of ik ben gewoon te arm van geest om het te snappen, dat
kan natuurlijk ook.
Terug naar de tabellen dan maar?
Ik dacht het niet. In elk geval niet rücksichtslos. Ondanks mijn groeiende besef
dat je ook te streng in de semantische leer kunt zijn en dat
de <div> tag net zo erg misbruikt wordt
als de <table> om het web vorm te geven,
wegen de voordelen van css positionering en gestructureerde pagina’s eenvoudigweg
te zwaar om te negeren:
- positionering met (geneste) tabellen genereert extra onoverzichtelijke code
- pagina’s met veel tabellen hebben last van chronisch overgewicht
- semantische html is supereenvoudig te debuggen, onderhouden en te wijzigen
- indexerende spiders houden wel van een licht verteerbaar hapje: gestructureerde pagina’s ranken beter
Zonder handen uhhh ... tabellen
Niet zonder trots kan ik meestal roepen: ”kijk mama, zonder tabellen”! Echter, als er niemand kijkt zal ik stiekem af en toe toch een tabelletje in m’n html moeten plempen, ook als het geen prijslijst tab-data of iets dergelijks betreft. Al is het bijvoorbeeld maar om een pagina verticaal te centreren. Oke, het kan met behulp van een stijlblad, maar zolang er geen charmante oplossing voorhanden is, blijft zondigen soms verleidelijk.