Leren schrijven CSS lay-outs kunnen lastig zijn, vooral als u bekend bent met het gebruik van tabellen om fraaie webpaginalay-outs te maken. Maar terwijl HTML5 tabellen toestaat voor lay-out, is dit geen goed idee.
Tafels zijn niet toegankelijk
Gelijkwaardig aan zoekmachines, lezen de meeste schermlezers webpagina's in de volgorde waarin ze in de HTML worden weergegeven, en tabellen kunnen erg moeilijk zijn voor schermlezers om te ontleden. De inhoud in een tabellay-out, hoewel lineair, is niet altijd logisch als deze van links naar rechts en van boven naar beneden wordt gelezen. Bovendien kan het met geneste tabellen en verschillende overspanningen op de tabelcellen de pagina moeilijk te achterhalen maken.
Dit is de reden dat de HTML5-specificatie raadt af tabellen voor lay-out en waarom HTML 4.01 dit niet toestaat. Toegankelijke webpagina's zorgen ervoor dat meer mensen ze kunnen gebruiken en zijn het kenmerk van een professionele ontwerper.
Met CSS kunt u een sectie definiëren als behorend aan de linkerkant van de pagina, maar als laatste in de HTML plaatsen. Dan zullen zowel schermlezers als zoekmachines de belangrijke delen (de inhoud) als eerste lezen en de minder belangrijke delen (navigatie) als laatste.
Tafels zijn lastig
Zelfs als u een tabel maakt met een webeditor, zullen uw webpagina's nog steeds ingewikkeld en moeilijk te onderhouden zijn. Behalve de meest eenvoudige webpagina-ontwerpen, vereisen de meeste lay-outtabellen het gebruik van veel en attributen en van geneste tabellen.
Het bouwen van de tafel lijkt misschien eenvoudig terwijl je het doet, maar als het eenmaal klaar is, moet je het onderhouden. Zes maanden later is het misschien niet zo gemakkelijk om te onthouden waarom je de tabellen hebt genest of hoeveel cellen er op een rij staan, enzovoort. Om nog maar te zwijgen over het feit dat als je als teamlid webpagina's onderhoudt, je aan alle betrokkenen moet uitleggen hoe de tabellen werken of dat ze extra tijd nodig hebben om wijzigingen aan te brengen.
CSS kan ook ingewikkeld zijn, maar het houdt de presentatie gescheiden van de inhoud en maakt het op de lange termijn veel gemakkelijker te onderhouden. Bovendien kun je met CSS-lay-out één CSS-bestand schrijven en al je pagina's zo opmaken dat ze er zo uitzien. Als u vervolgens de lay-out van uw site wilt wijzigen, wijzigt u eenvoudig één CSS-bestand en het hele sitewijzigingen - niet meer elke pagina één voor één doorlopen om de tabellen bij te werken om de indeling.
Tafels zijn inflexibel
Hoewel het mogelijk is om tabellay-outs met percentagebreedtes te maken, zijn ze vaak langzamer te laden en kunnen ze het uiterlijk van uw lay-out drastisch veranderen. Maar als u gespecificeerde breedtes voor uw tabellen gebruikt, krijgt u een zeer strakke lay-out die er niet goed uitziet op monitoren die een ander formaat hebben dan die van u.
Het is relatief eenvoudig om flexibele lay-outs te maken die er goed uitzien op veel monitoren, browsers en resoluties. Met CSS-mediaquery's kunt u zelfs afzonderlijke ontwerpen maken voor schermen van verschillende grootte.
Tabellen doen pijn aan zoekmachineoptimalisatie
De meest voorkomende lay-out die door een tabel wordt gemaakt, gebruikt een navigatiebalk aan de linkerkant van de pagina en de hoofdinhoud aan de rechterkant. Bij het gebruik van tabellen vereist deze benadering (in het algemeen) dat de eerste inhoud die in de HTML wordt weergegeven, de linkernavigatiebalk is. Zoekmachines categoriseren pagina's op basis van de inhoud, en veel zoekmachines bepalen dat inhoud die bovenaan de pagina wordt weergegeven belangrijker is dan andere inhoud. Dus een pagina met linkse navigatie eerst, zal inhoud lijken te hebben die minder belangrijk is dan de navigatie.
Met behulp van CSS kunt u de belangrijke inhoud eerst in uw HTML plaatsen en vervolgens CSS gebruiken om te bepalen waar deze in het ontwerp moet worden geplaatst. Dit betekent dat zoekmachines de belangrijke inhoud als eerste zien, zelfs als het ontwerp deze lager op de pagina plaatst.
Tabellen worden niet altijd goed afgedrukt
Veel tafelontwerpen drukken niet goed af omdat ze simpelweg te breed zijn voor de printer. Dus om ze passend te maken, knippen browsers de tabellen af en drukken de onderstaande secties af, wat resulteert in onsamenhangende pagina's. Soms krijg je pagina's die er goed uitzien, maar de hele rechterkant ontbreekt. Andere pagina's zullen secties op verschillende vellen afdrukken.
Met CSS kunt u een apart stijlblad maken, alleen voor het afdrukken van de pagina.
Tabellen voor lay-out zijn ongeldig in HTML 4.01
De HTML 4-specificatie staten: "Tabellen mogen niet puur worden gebruikt als middel om documentinhoud op te maken, aangezien dit problemen kan opleveren bij het weergeven naar niet-visuele media."
Dus als u geldige HTML 4.01 wilt schrijven, kunt u geen tabellen gebruiken voor lay-out. Gebruik tabellen alleen voor tabelgegevens, en tabelgegevens zien er over het algemeen uit als iets dat u in een spreadsheet of mogelijk een database kunt weergeven.
HTML5 heeft echter de regels gewijzigd en nu worden tabellen voor lay-out, hoewel niet aanbevolen, als geldige HTML beschouwd. In de HTML5-specificatie staat: "Tabellen mogen niet als opmaakhulpmiddel worden gebruikt." Dit komt omdat tabellen voor opmaak moeilijk te onderscheiden zijn voor schermlezers, zoals eerder vermeld.
Het gebruik van CSS om uw pagina's te positioneren en op te maken is de enige geldige HTML 4.01-manier om de ontwerpen te krijgen die u gebruikte om tabellen te maken, en HTML5 raadt deze methode ook ten zeerste aan.