I løbet af denne serie er der allerede blevet gjort opmærksom på stylesheets flere gange. Disse stylesheets muliggør en strikt adskillelse af layout og design. HTML-elementer er takket være CSS udelukkende ansvarlige for den logiske eller semantiske beskrivelse af webdokumentet.
Erfaringsmæssigt er det nyttigt i begyndelsen at vide, hvordan et stylesheet egentlig ser ud. Se et første eksempel.
<!DOCTYPE html> <html lang="de"> <head> <title>PSD-Tutorials.de</title> <meta charset="UTF-8" /> <style> h1 { font-family:"Courier New", Courier, monospace; font-size: 200%; } p { font-family:Geneva, Arial, Helvetica, sans-serif; color:#0066FF; } </style> </head> <body> <h1>PSD-Tutorials.de</h1> <p>dein Grafik-, Web- & Fotoportal</p> </body> </html>
I browseren ser dokumentet sådan ud:
I HTML-filens body
-område er der defineret to elementer:
• en overskrift
• en tekstafsnit
Gennem CSS bliver disse to elementer formateret. Dertil defineres i head
-området et stylesheet-område ved hjælp af style
. Inden for dette område foregår formateringen af elementerne.
Her er definitionen for overskriften h1
igen:
h1 { font-family: "Courier New", Courier, monospace; font-size: 200%; }
Den viste syntaks fastlægger to ting:
• Skrifttypen bestemmes.
• Skriftstørrelsen defineres.
På dette tidspunkt skal det først og fremmest handle om den anvendte syntaks generelt. Enhver CSS-anvisning består grundlæggende af to dele - en selector og en CSS-deklaration. Gennem selektoren fastlægges det element, der skal formateres. Hvordan formateringen til sidst ser ud, bestemmer CSS-deklarationen. Selektoren står altid til venstre, CSS-deklarationen til højre i krøllede parenteser.
Selv CSS-deklarationen består af to elementer, nemlig egenskaben og værdien. Egenskab og værdi adskilles af et kolon. Efter værdien følger et semikolon.
Selektor { Egenskab: Værdi; }
Integrer stylesheets
Der findes mange forskellige måder at integrere stylesheets på hjemmesider. Først og fremmest kan du tildele stile direkte til et HTML-tag. Et eksempel:
<h1 style="color: #0033CC;">PSD-Tutorials.de</h1>
I dette eksempel vises overskriften i blå farve.
Du kan også tilføje flere stile til et HTML-tag på én gang.
<h1 style="color: #0033CC; background-color: #99FF66">PSD-Tutorials.de</h1>
Skriv dem simpelthen efter hinanden, adskil dem med et semikolon.
Generelt er disse såkaldte inline-stile kun fornuftige, hvis individuelle områder på en side skal formateres individuelt. Normalt bør du dog undgå denne type direkte formatering, da HTML-koden derved bliver uoverskuelig.
Central definition i head-området
Du kan definere et centralt stylesheet inden for head-området i HTML-filen. Her defineres alle stilarter, der skal gælde for denne fil.
<head> <style type="text/css"> .text { font-family: "Courier New", Courier, monospace; font-size: 200%; } </style> </head>
Fordele ved denne metode: I modsætning til inline-metoden kan de definerede formater bruges flere gange i dokumentet. I det foregående eksempel blev CSS-klassen text
defineret. (Yderligere oplysninger om selektorer som den her anvendte klasse vil blive givet i næste vejledning). Denne klasse kan nu bruges vilkårligt mange gange i dokumentet.
<h1 class="text">PSD-Tutorials.de</h1> <p class="text">dein Grafik-, Web- & Fotoportal</p>
En sådan definition har selvfølgelig også den fordel i forhold til inline-metoden, at ændringer kan foretages meget hurtigt.
Udliciter CSS-anvisninger
Den mest praktiske metode til CSS-definition er at udlicitere stilerne til en ekstern fil. Derved kan et vilkårligt antal HTML-filer tilgå den samme CSS-fil. Dette gør det let at opnå en ensartet formatering af alle filer, der hører til webprojektet. Senere ændringer, der skal gælde for alle sider, kan dermed udføres problemfrit.
<link rel="stylesheet" type="text/css" href="css/styles.css">
I HTML-filens hoved indsættes link
-elementet. Inden for link
angiver man først attributværdi-kombinationen rel="stylesheet"
. Derefter følger type="text/css"
. href
-attributtet tildeles den pågældende CSS-fil. Vær opmærksom her - ligesom ved indlejring af billeder - på den korrekte sti. I det aktuelle eksempel antages det, at CSS-filen styles.css er i mappen css, som igen er på samme niveau som selve HTML-filen.
Den refererede CSS-fil er en normal tekstfil med filtypen css. De tilhørende CSS-anvisninger defineres i den eksterne CSS-fil.
h1 { font-family:"Courier New", Courier, monospace; font-size: 200%; }
Alternativ til den viste link-variant kan stylesheets også importeres. Her er CSS-instruktionerne placeret i en ekstern fil. Syntaxen er som følger:
<style type="text/css"> @import url("css/styles.css"); </style>
Inden for parenteserne angives stien til den css-fil, der skal importeres. @import
er i øvrigt en del af CSS-syntaksen, så @import
-instruktionen kan også bruges inden for CSS-filer. Dette gør det muligt at kalde andre stylesheets fra et stylesheet, hvilket muliggør en bedre organisation af stylesheets.
Naturligvis melder spørgsmålet sig, om man skal bruge link
eller @import
. Generelt foretrækker jeg link
, da denne metode er hurtigere, hvilket resulterer i en bedre ydeevne på siden.
Mediespecifikke stylesheets
Man kan definere stylesheets til forskellige medier som f.eks. printere eller skærme. Dette gøres ved hjælp af media
-attributtet. Du kan også tildele et stylesheet til flere medier adskilt af kommaer.
<link rel="stylesheet" media="screen" href="css/styles.css"> <link rel="stylesheet" media="print " href="css/druck.css">
I dette tilfælde blev der kaldt to stylesheets, et til skærmen og et til udskrift. CSS-filen druck.css indlæses derfor, når browserens udskriftsfunktion kaldes. Overordnet set er følgende media
-værdier tilgængelige:
• all
– gælder for alle outputmedier.
• aural
– CSS-filen bruges til lydoutputsystemer.
• braille
– CSS-filen er designet til punktskriftprintere med taktile feedback, der kan generere såkaldt "blindskrift".
• embossed
– Braille-siderprintere adresseres hermed.
• handheld
– Designet til håndholdte enheder.
• print
– CSS-filen gælder for print på papir. Browserne bør automatisk henvise til denne fil, når udskriftsfunktionen kaldes.
• projection
– Denne variant er designet til projicerede præsentationer.
• screen
– Designet til skærmvisning.
• tty
– CSS-filen er designet til medier, der bruger en fast tegngitterstruktur. Dette kan f.eks. være teleskrivere og terminaler.
• tv
– Disse er designet til tv-lignende enheder. Det antages, at enhederne har en lav opløsning og kun er begrænset scrollbar.
Ud over den viste HTML-syntaks ved hjælp af link-elementet er der også specielle CSS-varianter. Her bruges @import
eller @media
.
<style type="text/css"> @media screen, projection { /* Formater for skærm */ } @media print { /* Formater for udskrift */ } </style>
Inden for style
-elementet defineres i @media
et område for formateringer, der er beregnet til et specifikt outputmedium. Efter @media
skal en af de allerede beskrevne mediatyper angives adskilt af mellemrum. Flere mediatyper skal adskilles af kommaer.