Geplaatst door: Ramon Geplaatst op: 25-1-2004 16:41:45 Laatste update: 25-1-2004 16:49:17 Aantal keer bekeken: 110951 XHTML en CSS
Het maken van websites met behulp van ASP betekent niet dat de achterliggende HTML code een rommeltje mag zijn. Tegenwoordig wordt er al veel met stylesheets gewerkt om een beetje orde in de chaos te scheppen. Dit houdt in de meeste gevallen in dat onder andere de kleuren van links, de achtergrondkleur en het lettertype in het stylesheet worden gedefinieerd. Voor de verdere opmaak van de pagina's worden er veelal tabellen gebruikt, terwijl stylesheets hier ook voor bedoeld zijn. Ik heb me er in het verleden ook vaak schuldig aan gemaakt. Madness is bijvoorbeeld ook geheel opgebouwd uit tabellen.
Maar nu heb ik zelf het licht
gezien! Het opmaken van HTML pagina's met CSS kan soms een 'hel' zijn, maar over het algemeen werkt het super. In dit artikel zullen de belangrijkste voordelen en nadelen van opmaken met CSS besproken worden. Er zullen tevens een aantal voorbeelden worden gegeven.
Scheiden opmaak en inhoud
Mede door de komst van XML hoort je tegenwoordig overal dat het scheiden van opmaak en inhoud erg belangrijk is.Waarom is dit zo belangrijk?
De voornaamste reden van het scheiden van de opmaak en de inhoud is dat je de inhoud voor meerdere doeleinden kan gebruiken, onafhankelijk van de opmaak. De teksten van het personeelsblad kunnen dan bijvoorbeeld ook gebruikt worden op het intranet en visa versa.
Een ander voordeel is dat het mogelijk wordt om de gegevens centraal op te slaan. Hier zullen voornamelijk databases voor gebruikt worden. Bij grotere organisaties of organisaties waarbij er verschillende media worden gebruikt om informatie over te brengen is het belangrijk om de de gegevens eenvoudig te kunnen transformeren van het ene medium naar het andere medium. Een mogelijke oplossing voor dit probleem is XML.
Veel mensen die voor het eerst van XML horen denken dat XML een vervanger is van de database. Ze worden immers beide gebruikt om gegevens in op te slaan. XML is echter niet geschikt om grote hoeveelheden informatie in op te slaan, omdat het gewoon tekstbestanden zijn. In een database heb je veel meer mogelijkheden en functies zoals het leggen van relaties of het gebruik van SQL om gegevens te selecteren. XML is te zien als een toevoeging op de database, een laag tussen de database en het medium dat de informatie toont. Hier komt het grote voordeel van XML naar voren. XML is, in tegenstelling tot een database, platform-onafhankelijk en kan daarom overal op alle systemen gebruikt worden.
Met behulp van XML is het mogelijk om gegevens een betekenis te geven. Zo kan je bijvoorbeeld het verschil tussen de voornaam en achternaam aangeven. Zo is het mogelijk om voor het ene medium wel de voornaam te tonen en voor het andere medium niet. Wanneer gegevens een betekenis hebben is het zelfs mogelijk voor computers om te begrijpen om wat voor gegevens het gaat.
Wat is de link tussen XML en webdesign?
Het is tegenwoordig mogelijk om een XML bestand doormiddel van een stylesheet weer te geven als webpagina. Het probleem hiermee is dat veel browsers de conversie van XML naar HTML nog niet goed ondersteunen. Gelukkig is dit op te lossen door dit vooraf te doen (op de server), voordat de gebruiker de pagina opvraagt. Helaas is deze tussenstap voor kleinere organisaties vaak minder interessant, omdat ze de informatie vaak maar op één manier getoond hoeft te worden.
Om de stap van HTML naar XML kleiner te maken is er een soort ‘tussentaal’ ontwikkeld, namelijk XHTML. XHTML is een HTML volgens een aantal van de XML regels. Met XHTML beschik je over een aantal van de voordelen van XML, maar hoeft er verder geen extra stap gemaakt worden om een XML document te genereren.
XHTML is in veel opzichten gelijk als HTML, met het grote verschil dat bepaalde eisen zijn gesteld aan opmaken van de pagina. De belangrijkste verschillen met HTML zijn:
Tags moeten netjes genest zijn;
XHTML documenten moeten volgens een bepaalde structuur opgemaakt zijn;
Tags en attributen moeten met kleine letters geschreven worden;
Alle tags moeten afgesloten worden.
Er zijn verschillende versies van XHTML:
XHTML1.0 Transitional
XHTML1.0 Frameset
XHTML1.0 Strict
XHTML1.1
XHTML1.0 transitional heeft de minste beperkingen. De frameset versie is special voor de pagina waarin een frameset gedefinieerd is. Met deze versie van XHTML is het nog mogelijk om opmaak en inhoud te mixen. XHTML1.0 strict is de eerste versie van XHTML, met het grote verschil dat opmaak en inhoud volledig gescheiden moet zijn. In het XHTML document kunnen geen opmaak tags zoals <font> gebruikt worden. De opmaak gaat allemaal via cascading style sheets. XHTML1.1 is vergelijkbaar met XHTML1.0 strict alleen met iets minder eisen, omdat ontwikkelaars de strict mode te strict vonden.
Het volgende hoofdstuk zal gaan over layers vs. tabellen.
Over welke netscape heb je het. Mijn ervaring met 7 en 7.1 is al redelijk verschillend. Persoonlijk kijk ik niet meer naar netscape (misschien ff een kleine check). Mozilla/Opera vind ik veel belangrijker om goed te ondersteunen (over het algemeen doen een site het in netscape ook prima wanneer ie in mozilla werkt, bijna dezelfde engine.
Het blijft zo dat je met width en height veel problemen kan krijgen. Dit komt onder andere doordat IE en Mozilla het allemaal weer anders interpreteren. IE ziet height en width als minimum en in Mozilla is het echt de height (Mozilla ondersteund weer min-height).
Een ander probleem is de vraag ie je altijd moet stellen bij het gebruik van percentages.
Een percentage van wat?
Wanneer je dus een element een width van 100% geeft moet het parent element ook een width hebben van 100%.
Door veel met css te werken leer je een hoop trucs en 'hacks' (niet veel gebruiken!) om alles prima werkend te krijgen.
De pagina's die ik met layers en css heb gemaakt zijn gewoon gestructureerd en super overzichterlijk. Ook is het heel envoudig om een printbare versie te maken zonder een extra pagina te maken, gewoon een stylesheet en in de declaratie media="print".
Zolang netscapa en andere browsers hier geen problemen mee hebben, ok. Zelf gebruik ik layers en css maar netscape heeft moeite als je bijvoorbeeld stijle="width:100%;" doet. Hij past de layer niet aan aan de grote van het venster of de tabel maar vergroot ze gewoon weg veel te veel.