Zoals beloofd, een nieuwe draad over de vraag of tabellen principieel beter zijn dan div's, voor layout.

De volgende argumenten laten zien dat dat niet het geval is:

1. Er is een veel betere manier om layout en content te scheiden.
Div's-layout (niet te verwarren met CSS-layout want tabellen zijn ook te stijlen met CSS) is ontworpen om layout en content te scheiden, zodat men slechts één of hooguit een paar bestanden hoefde te veranderen als de site een nieuwe layout behoefde. Daarmee voorzag het in een grote behoefte, want 30 of meer pagina's op dezelfde manier verbouwen was een zeer geestdodende taak.

Echter, daar is inmiddels een nog veel mooiere methode voor ontwikkeld: server-side includes (SSI's). Met SSI's kunnen niet alleen navigatiemenu's maar ook content-files geïncludeerd worden. In gewoon Nederlands betekent dit dat men één moederpagina aanmaakt, inclusief navigatiemenu, waar telkens andere inhoud in geladen wordt. Voor de layout van zo'n moederpagina is het niet nodig om div's te gebruiken. Dan kan ook met tabellen.

Het is een illusie - zeker ingeval van geneste div's - om te denken dat met slechts het veranderen van het externe stijlblad met div's-layout elke andere layout voor de hele site bereikt kan worden. Daar zitten grote beperkingen aan.

En wat als men halverwege de 30 te maken geïntegreerde div's-pagina's (de 'oude' manier) iets wil toevoegen? Dan moet men alsnog 15 pagina's gaan aanpassen, terwijl men een div's-layout heeft...

Deze moeilijkheden gelden niet als men het systeem van server-side content includes gebruikt. De moederpagina waarvan meestal net zo goed uit een tabellayout mag bestaan.

2. De vraag of tabellen bedoeld zijn voor layout is irrelevant.
Waar het om gaat is of een methode gelijkwaardige resultaten oplevert, en of hij webmastervriendelijk is. Tabellen en div's leveren niet precies dezelfde resultaten op. In sommige gevallen kan een layout alleen met div's gemaakt worden, als men een overzichtelijke, intuïtieve code wil houden. Maar het omgekeerde geldt evenzeer.

Bovendien bestonden tabellen al ruim vóórdat div's ontworpen werden, en heeft men jarenlang layouts gemaakt met tabellen zonder dat er een haan naar kraaide.

Tot slot van dit argument zijn er twee soorten tabellen: de normale tabellen, ook geschikt voor vele layouts, en de tabellen speciaal geschikt voor tabulaire data. De laatste kenmerken zich door het opgebouwd zijn uit o.a. <thead>, <tbody>, <tfooter> en <caption>.

3. Pagina's met een tabellayout worden niet significant langzamer gedownload en gerenderd dan pagina's met div's-layout.
Verhalen over dat oude computers vastliepen op pagina's met geneste tabellen kunnen genegeerd worden, omdat er toen nog geen div's bestonden, en er geen enkele reden is om te geloven dat die computers niet net zo zeer vastgelopen zouden zijn op geneste div's.

4. Zoekmachines indexeren pagina's met tabellayout net zo goed als met div's-layout.
Voor zoekmachines zijn tabellen tabellen. Of die nu voor layout of tabulaire data gebruikt worden, de inhoud wordt net zo goed geïndexeerd en gevolgd.

5. Voor screenreaders is een veel mooiere oplossing dan div's-layout.
Een bijkomend voordeel van div's-layout t.o.v. tabellayout was dat de site sneller te lezen was met screenreaders. Echter, met de volgende methode zullen de blinden nóg gelukkiger zijn:

* Neem in de summary van de layouttabel de volgende tekst op: "Deze tabel is een layouttabel. Voor screenreaders is een aparte introductie- en navigatiepagina gemaakt. Het adres is (de URL)."
* Op die navigatiepagina, die alleen platte tekst bevat, schrijf je hoe de site is opgebouwd als dat nodig is, en geef je directe links naar de content-files, die ook weinig meer dan platte tekst hoeven te bevatten.

Er kan dus geconcludeerd worden dat de kruistocht tegen tabellen gestaakt kan worden, en dat div's-layout niet principieel beter is dan tabellayout.

- Frank
ik zelf gebruik (*shame*) ook nog altijd tables.

Dit mede omdat het scripten sneller gaat dan divjes.

Maar divjes is inderdaad makkelijker voor je styles wilt toepassen, aangezien alle opmaak van je divjes dezelfde waarde hebben, maar dat die waarde toegwezen word uit je CSS sheet.

Dat is inderdaad het grote voordeel, een table heeft vaste waardes, divjes kun je compleet verschuiven/overlay etc.

Ik ben dan ook van plan om in de toekomst divjes te gaan gebruiken. Je meot toch meegaan he :)
Leon Kunst schreef op 18.02.2008 14:40
ik zelf gebruik (*shame*) ook nog altijd tables.

Dit mede omdat het scripten sneller gaat dan divjes.
Dan heb je blijkbaar geen (goede) scheiding tussen de businesslayer en de presentatielayer zitten.

In de presentatielayer is namelijk heel eenvoudig om een divje te plaatsen, vele malen eenvoudiger dan een table, row of column.
Met sneller bedoel ik, dat jet niet de locaties etc hoef te bepalen van de divjes

path=absolute; etc... maar neemt niet weg dat divjes handiger zijn.

btw, van de TS hoor je ook niets meer... (als ie nog maar leeft....)
ik gebruik ook nog steeds tables, maar niet voor design
ik gebruik tables eigenlijk alleen maar voor formulieren.
@Mikey
Ook formulieren kan je met een fieldset en legend prima stylen zonder tabellen (en ja ook zo dat velden op eenzelfde afstand staan)

@Leon
Hoezo position:absolute (path kennen we niet in CSS) Je kan bijna altijd zonder absolute werken.
@Robert Deiman
Heb je een voorbeeldje van zo'n formulier? Dat is de enige keer dat ik gebruik maak van tabellen en wil daar toch wel graag vanaf! Het staat zo jammer als je hele site netjes in div's staat en lekker semantisch is enzo.
@ Robert,

het was maar een voorbeeld van 1 term van css, je hebt veel meer dingen nog wat er bij komt kijken mbv divjes om posities te bepalen, en de kleur, en 8ergrond etc etc.

Maar als je dit eenmaal uit je hoofd kent (net zogoed als de <tr><td> volgorde van tables) kun je hier heel iets moois van maken
@pgFrank

Dankjewel! Lang leve fieldsets dus.
winkie schreef op 18.02.2008 15:20
@pgFrank

Dankjewel! Lang leve fieldsets dus.
Vergeet de <label>'s niet!

Reageren