Veel mensen weten niet wat het is en wat je ermee kan doen. Nog steeds zijn er veel designers die hun pagina's met HTML opmaken omdat ze niets van CSS weten of denken dat het voorbehouden is aan W3C goeroe's. Ten eerste is het helemaal niet moeilijk en ten tweede kan je zelf ook zo'n goeroe worden :-) In deze tutoriel leer je waarom je CSS moet gebruiken en hoe je het gebruikt.
Een eenvoudige website bestaat uit minimaal één component: HTML. Hiermee bouw je structuur, een soort raamwerk, om de informatie van een pagina heen: <h1> voor de koptekst, <p> voor paragrafen enzovoort. Helaas ziet dit er nogal onaantrekkelijk uit voor een website; het is puur zwart en wit. Natuurlijk wil je dat jouw website er kleurig bij staat en dat kan niet beter dan met, je raadt het al, CSS. Met CSS kan je alle elementen op een pagina een opmaak geven, positioneren, hover (als je met de muis erop staat, bij Javascript "mouseover") effecten meegeven, enzovoort. De naam staat voor Cascading Stylesheets (Trapsgewijze stijlbladen). Deze trapsgewijze werking is een zeer krachtig element van CSS waar ik later nog op terugkom.
De meeste beginners - zelfs mensen met webdesign als beroep - op het gebied van HTML maken hun pagina's op met HTML code. In het begin van het web was er nog geen CSS of een goede CSS ondersteuning door browsers, dus het was geen logische keus om het te gaan gebruiken. Op deze manier is het opmaken met HTML ingeburgerd. Omdat dit erg inefficiënt is, leg ik het alternatief CSS uit;
Heel leuk en aardig dat je nu weet wat CSS is, maar als je er niet mee kan werken heeft het nog weinig nut. Opzich is CSS heel eenvoudig. Het werkt volgens een paar strakke regels en kent geen uitzonderingen. In het volgende voorbeeld staat een kort stukje CSS:
span
{
background-color:lime;
font-style:italic;
}background-color geeft de achtergrondkleur aancolor definiëert de tekstkleurfont-style kan een aantal waardes hebben en vertelt welke stijl de tekst heeft. In dit geval is het italic.Als je meerdere elementen wilt stijlen zet je alles netjes achter elkaar:
div
{
font-style:italic;
}
a
{
text-decoration:underline;
}
p
{
margin-top:5px;
}div {
font-style:italic;
}
a
{
text-decoration: underline;}
p{margin-top:5px;}div p a
{
text-decoration:underline;
}<a>-elementen in <p>-elementen in <div>-elementen geselecteerd. Dus alleen links die in een paragraaf staan die in een
Er zijn nog twee manieren om specifieke elementen te selecteren behalve trapsgewijze selectie. Met een ID kan je één enkel element selecteren.Voorbeeld:
div#footer
{
background-color:pink;
}<div id="footer"><div>span.underline
{
text-decoration:underline;
}<div>
<p>
<span class="underline">Hallo wereld</span>
</p>
<span class="underlined">Nog een fijne dag</span>
</div>.underlined geeft aan dat alle elementen met class="underlined" deze stijl toegewezen krijgen, mits die elementen s zijn. Net zoals bij ID's hoef je geen elementnaam te gebruiken, dus de volgende code is ook geldig:.underline
{
text-decoration:underline;
{Met pseudo-classes kan je elementen selecteren die een actie ondergaan (hebben). Bijvoorbeeld als de muis erop staat, of als de link bezocht is. Het gebruik ervan is precies hetzelfde als bij ID's en classes, alleen de definitie is iets anders:
a:hover
{
color:blue;
}hover Als de cursor boven het element staatvisited Voor links naar reeds bezochte pagina'slink Voor links naar nog niet bezochte pagina'sactive voor elementen die actief zijn. Een element is bijvoorbeeld actief tussen het indrukken van de muisknop op het element en het loslaten van de knopfocus Voor elementen waar de focus op staat. Dit kan je met tab doen of als de tekstcursor in een invoerveld staatlang Deze selecteert elementen die geschreven zijn in een andere taal. In dat element moet het lang-attribuut opgenomen zijn om de taal ervan op te gevenfirst-child Deze selecteert het eerste child element in een ander elementleftrightfirstOp left, right en first wordt hier verder niet ingegaan
Ik leg kort het gebruik van lang en first-child even uit:
a:lang(nl)
{
text-decoration:underline;
}<a lang="nl" href="#"></a>lang="nl" in de tag.a:first-child
{
text-decoration:underline;
}<a>'s die het eerste child-element in een ander element zijn aangesproken.:focus kan je invoervelden een licht afwijkende achtergrondkleur geven, waardoor gebruikers eenvoudig kunnen zien in welk veld de cursor staat. Dit maakt de pagina weer wat gebruiksvriendelijker.first-letter Deze selecteert de eerste letter van het betreffende element
first-line Deze selecteert de eerste regel van een element
before Hiermee kan je dingen voor de content van het element plaatsen (tekst, afbeeldingen)
afterHetzelde als voor :before, maar dan plaatst hij dingen na de content
Pseudo-elementen worden hetzelfde gedefinieerd als pseudo-classes. first-letter en first-line werken net zoals ID's en classes, maar before en after werken iets anders:
p:before
{
content: "deze tekst staat ervoor";
}content kan open-quote, close-quote, no-open-quote, no-close-quote, url(afbeelding) of een string tussen quotes zijn.:before en :after helaas niet.
Nu je weet hoe je HTML code moet opmaken, is het ook wel handig te weten hoe je ervoor zorgt dat je styles aan je HTML gelinkt worden. Dit kan op drie manieren gedaan worden, waarvan eentje aan te raden is;
<style> tags in de <head>. Dit is een internal style sheet"style" attribuut plaatsen. Dit zijn dan inline style sheetsDe eerste oplossing is het beste, aangezien je hier maar één CSS bestand hebt, waardoor de layout van een pagina erg makkelijk aan te passen is. Als je besluit de opmaak over de hele site - ook al is met maar een klein detail - aan te passen, dan hoef je deze wijziging slechts in dit ene bestand toe te passen. Je hoeft de CSS code maar één keer hoeft te verzenden omdat hij daarna in de cache van de gebruiker staat. De HTML code wordt dan zo:
(...)
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
(...)(...)
<head>
<style type="text/css">
a
{
text-decoration:underline;
}
</style>
</head>
<body>
<a href="#">hyperlink</a>
</body>
(...)<a style="text-decoration:underline;" href="#">We zijn nu aangekomen bij het einde van deze tutorial. Je kent nu de werking van CSS en waarom je het zou moeten gebruiken. Nu kan je aan de slag gaan met tutorials waarin je leert met welke CSS-eigenschappen je HTML-elementen kan opmaken.