Start | Spil | Programmer | Guider | Kontakt | FIRE beregner | ||||
HTML Guide | CSS Guide | JavaScript Guide | Release Guide | | ||||
CSS guide | ||||
Af: Gabriel Siegel | ||||
Indhold | ||||
Introduktion | ||||
CSS er en forkortelse for Cascading StyleSheets. De kan bruges til at opnå en lang række avancerede effekter på din hjemmeside, og de kan også bruges til at gøre nogle ting lettere for dig, når du skriver HTML kode. CSS er sit eget programmeringssprog, som ikke er bygget op på samme måde som HTML. For eksempel består CSS ikke af tags, som du kender det fra HTML. CSS kode indlejres i din HTML fil og skal stå mellem CSS er smart blandt andet fordi det kan spare dig for en masse HTML kode. Hvis du fx ønsker at al fed skrift samtidig skal være rød, så kan du gøre det en gang for alle i dit stylesheet, så du slipper for at skulle skrive |
||||
Krav til dig for at følge denne guide | ||||
Denne guide går ud fra, at du allerede har været igennem guiden om HTML. CSS bygger ovenpå HTML og derfor er det nødvendigt, at du allerede har et kendskab til HTML. Hvis du ikke allerede har gennemgået HTML guiden kan du finde den ved at følge linket nedenfor: |
||||
Struktur af et stylesheet | ||||
Et stylesheet er bygget op af såkaldte "selectors". En selector er i sin basale form navnet på et HTML tag. Efter selektoren kommer noget kode, der giver indstillinger for det pågældende tag. For eksempel kan man lave en selektor der hedder
Dette er et eksempel på en selektor, som vi kun giver en enkelt indstilling. Nemlig indstillingen ved navn "color". Den generelle form af en indstilling er som følger:
Som producerer følgende resultat: Tryk her for at se resultatet af ovenstående HTML kode |
||||
Leg med tekstindstillinger | ||||
I dette afsnit kommer du til at lære nogle flere indstillinger at kende end "color", som vi allerede har set. Vi vil også prøve at pille ved andet end paragraffer. For eksempel vil vi prøve at ændre udseende på fed tekst. Betragt følgende eksempel:
Dette stylesheet specificerer indstillinger for to forskellige HTML tags, nemlig Du er nok nysgerrig efter, hvordan tingene kommer til at tage sig ud med vores nye style-sheet. Hvis vi i
Så kommer det til at tage sig således ud: Dette er en paragraf. Sådan ser teksten ud i paragraffer Dette står med fed skrift. Sådan ser teksten ud, når den er med fed.Denne tekst er helt almindelig Hvad så, hvis man har et Dette vil producere følgende resultat: Denne tekst står i en paragraf, og er samtidig fed. Hvad mon der så sker? Som du kan se "vinder" indstillingerne for |
||||
Avancerede selektorer | ||||
En selektor behøver ikke bare være et simpelt HTML tag. Du kan også beskrive en hel sekvens af tags, som skal komme indeni hinanden i den givne rækkefølge, før indstillingerne bliver taget i brug. Lad os sige, at vi ønsker at lave et stylesheet som farver fed tekst rød hvis den fede tekst kommer indeni en paragraf. Hvis den fede tekst ikke kommer indeni en paragraf, skal den ikke farves rød! Nedenstående stylesheet giver den ønskede virkning:
Vi bruger punktum til at separere tags i vores selektor. "P.B" betyder således at indstillingerne angivet til denne selektor bliver taget i brug, "når et B tag findes indeni et P tag". Hvis vi nu havde følgende HTML kode sammen med ovenstående stylesheet:
Så får man følgende resultat: Dette er en paragraf Dette er fed tekstDette er fed tekst indeni en paragraf |
||||
Klasser | ||||
Hvad nu, hvis du har flere forskellige indstillinger du gerne vil kunne skifte imellem? Hvis du nu fx, vil kunne lave to slags fed tekst. En som er rød og en som er blå? Hvis du bare bruger selektoren B, så vil den jo have indvirkning på al fed tekst. Løsningen hedder klasser! Et stylesheet med to forskellige slags fed skrift, kunne se ud som følger:
Jeg har lavet to typer kaldet "type1" og "type2". Typer angives også efter et punktum, ligesom du så det for avancerede selektorer. Hvis du vil lave en fed skrift, der bruger indstillingerne fra type1, skal du skrive CLASS="type1" indeni dit
Tryk her for at se resultatet af ovenstående HTML kode
Der skal naturligvis være overensstemmelse mellem det man skriver i stylesheetet efter punktum, og så det man angiver i CLASS feltet. Men det burde vel også give sig selv? |
||||
Margin | ||||
Har du undret dig over, hvordan jeg har fået alle overskrifterne i dette dokument rykket lidt ind? Det har jeg gjort med CSS! Ved at bruge den indstilling der hedder "margin-left". Det virker som følger:
Margin kan angives i billedpunkter (pixels) på din skærm. Ovenstående vil indrykke tekst skrevet mellem <FONT CLASS="indryk">Denne tekst er rykket 40 punkter ind.</FONT>
Producere følgende resultat: Denne tekst er rykket 40 punkter indDu kan også justere andre marginer med "margin-top", "margin-right" og "margin-bottom". Du kan bruge marginer til tekst ligesom jeg gjorde ovenfor. Du kan også bruge dem til at justere marginer for tabeller eller lister ved fx at bruge selektoren |
||||
Leg med links | ||||
Man kan lave mange sjove ting med links. Udover at ændre deres udseende ved at specificere indstillinger for A tagget, så kan du også specificere, hvordan linket skal tage sig ud, hvis man fører musen hen over det! Dette gøres ved at specificere indstillinger med selektoren A:hover. Du kan specificere indstillinger for besøgte links med A:visited. Normalt vises ikke besøgte links med blå, mens besøgte links vises med lilla. Det har du måske allerede lagt mærke til? Lad os nu prøve, at lege lidt med links!
Jeg har samtidig introduceret en ny indstilling, nemlig "text-decoration". Den kan være "none" (normal), "underline" (understreget), "line-through" (gennemstreget) eller "overline" (med en linie oven over sig). Lad os nu se, hvordan ovenstående stylesheet vil indvirke på vores links. Hvis vi nu laver et link: <A HREF="http://www.google.dk">Gå til google<A>
Så vil det tage sig således ud (prøv at føre musen hen over det). Gå til google |
||||
Baggrunde | ||||
Med CSS kan du farve området bag en tekst i en vilkårlig farve, som for at simulere en overstregningspen. Dette kan gøres med indstillingen "background-color":
Som sammen med følgende HTML fragment: <FONT CLASS="overstreget">Denne tekst bliver overstreget</FONT>
Producerer følgende output: Denne tekst bliver overstregetVi kan også lade baggrunden være et billede. For eksempel kan vi sætte baggrundsbilledet på hjemmesiden ved hjælp af følgende:
Men det har du jo allerede lært at gøre, bare ved at bruge HTML alene. Du synes måske det er underligt, at der står url(...) omkring filnavnet. Sådan er det altid i CSS, når man skal angive et navn på en fil. Det skal altid omkranses af sådan en url(...). Nu skal jeg vise dig, at man med CSS kan flere ting med baggrundsbilleder, end man kan i almindelig HTML! Man kan nemlig styre, hvordan billede bliver gentaget hen over skærmen. Man kan også forhindre, at billedet bliver gentaget. Du kan styre, hvordan et billede gentages hen over skærmen ved at bruge "background-repeat" indstillingen. Den kan sættes til repeat (den almindelige indstilling), repeat-x (der gentages kun i højre-venstre-retningen), repeat-y (der gentages kun i op-ned retningen) eller no-repeat (der gentages slet ikke). Lad os prøve at se et eksempel, hvor vi vælger no-repeat:
Billedet "background.gif" er et der ligger her sammen med denne HTML fil. Billedet ser således ud: Tryk her for at se resultatet af ovenstående HTML kode Det kunne også være, du hellere ville have haft billedet centereret. Det kan klare med indstillingen "background-position". Værdien for "background-position" er to ord separeret af mellemrum. For eksempel "center center", der vil placere billedet helt i midten af vinduet. Første ord beskriver, hvordan billedet ligger vandret, mens andet ord beskriver, hvordan billedet ligger lodret. Således vil "center top", være øverst og centreret.
Tryk her for at se resultatet af ovenstående HTML kode
Årsagen til at billede ikke synes at blive vist i midten, men snarere i toppen af skærmen ligger i, at siden er så lille (den er kun 1 linies tekst høj). Havde man skrevet mere tekst ville situationen være en anden. Sidst men ikke mindst, kan du forhindre at dit baggrundsbilleder scroller, når man scroller i selve dokumentet. Du kan således opnå den effekt, at din tekst glider hen over din baggrund, når man scroller med vinduet. Dette klares med indstillingen background-attachment. Hvis du sætter værdien til "fixed", vil billedet blive stående uanset om du scroller med vinduet eller ej. Lad os, se hvordan det kommer til at tage sig ud
Nedenfor kan du se resultatet af ovenstående, dog har jeg gentaget "bla bla" mange flere gange, så der kommer så meget tekst at man kan scrolle i vinduet. Tryk her for at se resultatet af ovenstående HTML kode |
||||
En fancy menu (ikke til IE) | ||||
Det følgende virker ikke i Internet Explorer, fordi Internet Explorer ikke understøtter ":hover" på andet end links. Hvis du har en anden browser som for eksempel Mozilla Firefox, vil det følgende dog virke fint. Selvom du kun bruger Internet Explorer kan det dog alligevel være instruktivt at læse dette eksempel igennem. Men du vil så ikke kunne prøve det af. Du vil senere lære at lave en fancy menu som den nedenstående som virker i alle browsere - også Internet Explorer. Så der er ingen grund til at fortvivle! Det jeg vil vise dig I dette afsnit, er hvordan man kan lave en lækker menu ved hjælp af stylesheets. Vi vil lave en menu, hvor knapperne skifter udseende, når man fører musen hen over dem. Dette eksempel bør inspirere dig til at tænke kreativt, over hvor mange spændende ting, man faktisk kan lave med stylesheets. Inden jeg gik igang designede jeg fire billeder til brug for dette eksempel. Disse billeder ser ud som følger: Vi skal nu bruge en kombination af de ting vi har lært, til at få en animation frem! Ideen er, at jeg vil lægge billederne ind i en tabel, og så bruge selectoren ":hover" til at få billedet til at skifte, når man fører musen hen over det. Men jeg er nødt til at lave en klasse for hvert billede, da det jo ikke er det samme der skal ske for begge menupunkter. Når man fører musen hen over menupunkt 1 skal den jo vise et andet billede, end når man fører musen hen over menupunkt 2. Da tabelcellerne ikke kommer til at indeholde noget (det er kun baggrunden i dem jeg egentlig er interesseret i) så er jeg nødt til at tvinge browseren til ikke at lave tabellen lille bitte (det gør den, når man ikke fylder noget i tabellen). Til dette bruger jeg en kombination af
Som du kan se definerer jeg 4 selektorer i mit stylesheet. Den første håndterer menupunkt1 i sin "normale" tilstand. Det vil sige, når man ikke fører musen hen over den. Bemærk at jeg tvinger tabelcellehøjden til 64 pixels så browseren ikke kollapser cellen til en lille tynd streg fordi cellen er tom. Derudover bruger jeg "background-image" indstillingen, som du allerede har set, til at sætte baggrunden for cellen til det første billede af menupunkt 1 (det første af de fire billeder vist ovenfor). Den anden selektor er til, når man fører musen hen over menupunkt 1 (det vil sige fører musen ind over tabelcellen med CLASS="pkt1"). Her skifter vi baggrundsbilledet til billede 2 i rækken vist ovenfor. De sidste to selektorer fungerer på samme måde, bare for menupunkt 2 i stedet for. Læg som sagt mærke til, at jeg tvinger tabellen til at være bred nok ved at benytte
Tryk her for at se resultatet af ovenstående HTML kode (virker ikke i Internet Explorer!) |
||||
Mere om CSS | ||||
Jeg har langt fra gennemgået alle indstillingerne man kan pille ved i CSS, men jeg håber du har fået et indblik i, hvad man kan lave med CSS og hvorfor det er smart. Hvis du gerne vil have en mere udførlig beskrivelse af samtlige indstillinger kan du prøve et af nedenstående links (de er godt nok på engelsk): |
||||
Privatlivspolitik Fortsæt til JavaScript guide |