CSS (af Cascading Style Sheets; oft hreinlega kallað stílsnið) er mál sem notað er til að skilgreina útlit skjala, oftast vefsíðna. CSS segir vafranum hvar kassar eigi að vera og hvernig texti eigi að líta út, sá texti er settur fram í HTML.

CSS (Cascading Style Sheets)

Dæmi um CSS skjal.
Skráarending:.css
MIME-gerð:text/css
Hönnun:W3C
Tegund forsniðs:Stílmál
Staðall:W3C 1,0 (Tilmæli)
W3C 2,0 (Tilmæli)
W3C 2,1 (Í vinnslu)

Munur á gömlu HTML og XHTML/HTML og CSS

breyta

Í eldri útgáfum HTML var hægt að skilgreina rauðan texta svona:

<p color="red">Rauður Texti</p>

Í útgáfu 4.01 t.d. og öllum útgáfum XHTML þykir eðlilegra að skilgreina útlit textans í sérstakri CSS-skrá með eftirfarandi hætti:

p { color: red; }

Og stiklutextinn sjálfur lítur einfaldlega svona út:

<p>Rauður Texti</p>

Til að tengja skjölin tvö saman þarf að vísa í CSS skjalið innan <head> hluta (X)HTML skjalsins.

<link rel="stylesheet" type="text/css" media="screen,projection" href="screen.css" />

Einnig er hægt að hafa stílreglurnar í <head> hluta HTML skjals, innan í <style> marki.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Halló heimur! – CSS</title>
<style>
p {
color: black;
}
</style>
</head>
<body>
<p>Halló heimur!</p>
<p>Þessi texti mun vera svartur.</p>
</body>
</html>

Uppbygging

breyta

Grunnmálfræði CSS samanstendur af veljara (e. selector) og stíl (e. declaration). Veljarinn kemur á undann síðan kemur slaufusvigi („{“), því næst stíllinnn – sem aftur er skipt í eigindi (e. property og gildi (e. value), aðskilin með tvípunkti („:“) – og loks öfugur slaufusvigi („}“). Þessi skrifmáti er nokkurn veginn nákvæmlega eins og skrifmáti JSON. Veljarinn er venjulega nafnið á markinu sem það á við eða kommu („, “) skiptur listi yfir þau. Hægt er að hafa umsagnir (e. comment í CSS kóðanum innan í „/*“ og „*/-pari. Bilið milli tvípunktsins eftir eigindið í stílnum og gildisins er ekki nauðsynlegt og valfrjálst.

h1 {
color: red;
}
h2, h3, h4, h5, h6 {
color:gray;
/* athugið að bilið milli „color:“ og „gray“ (litað blátt) hefur verið tekið burt */
}

Veljarar

breyta

Þótt veljarar séu oft bara listi yfir mörk þarf stundum að sigta sum úr, eða jafnvel láta stílinn gilda fyrir allt skjalið – hvort sem það er XML- eða HTML-skjal.

klasar

breyta

Hægt er að tengja mörk saman með klösum (e. classes). Það er gert með því að láta markið vera með eigindið class sem hefur klasann sem gildi. Hægt er að hafa mark í mörgum klösum og er þá class eigindið látið innihalda bilskiptan lista (lista þar sem gildin eru aðskilin með bili) með klösunum.

<span class="klasi1">
Hér er texti í klasa 1.
</span>
<p class="klasi1 klasi2">
Og hér er texti í bæði klasa 1 og 2.
</p>

Klasarnir eru valdir með því að hafa punkt og svo klasann strax á eftir. Hægt er að hafa nafnið á markinu á undan.

.klasi1 {
  color: red;
  text-style: italic;
}

p.klasi2 {
  background-color: green;
  font-style: none;
  font-weight: bold;
}

Þetta myndi líta nokkurn veginn svona út:
Hér er texti í klasa 1.

Og hér er texti í bæði klasa 1 og 2.

Þarna hafði color: red áhrif á báða klasana en font-style: italic hafði bara áhrif á fyrra dæmið.

Hægt er að velja mörk eftir því hvaða „ID“ þau hafa. Í HTML er það gildi id eigindisins og í XML er það gildi xml:id (strangt til tekið þarf ekki að vera xml: á undan id en eigindið verður að vera í XML nafnaplássinu (XML Namespace). Það er gert með því að hafa ferhyrning („#“) á undan id-inu. Einungis eitt mark er með hvert ID svo að það þarf að hafa kommuskiptan lista yfir ID-in ef velja á mörg mörk.

#id /* velur markið með ID-ið „id“ */ {
  color: yellow;
}

span#merkilegt /* velur span markið með ID-ið merkilegt */ {
  color: red; /* litar textann rauðan */
  text-decoration: underline; /* strikar undir textann */
  font-wheight: bold; /* þykkir letrið með gleiðletri */
  font-size: x-large; /* stækkar leturgerðina */
}

Gerviklasar

breyta

Gerviklasar eru klasar marka sem þurfa ekki endilega að hafa class eigindið skilgreint, heldur uppfylla þeir þau skilyrði sem hver klasi setur. Tvípunktur („:“) er hafður á undan nafni gerviklasans frekar en punkturinn á undan „venjulegu“ klösunum. Mörk geta færst á milli gerviklasa við aðgerðir notandans.

a:hover /* velur tengla sem notandinn er með bendilinn (tölvumús eða álíka tæki) yfir */ {
  color: blue;
  text-decoration: underline;
}

Stílar

breyta

CSS stílar samanstanda af eigindi og gildi, þ.e.a.s. hverju á að breyta og í hvað, rétt eins og stílreglur eru af veljurum og stílum (hvaða mörkum á að breyta og hvernig).

p {
  color: black; /* Þetta gefur eigindinu color (litinn) gildið black (svartan). Það litar textann svartan. */
}

Eigindin og gildin eru venjulega orð á amerískri ensku.

Kostir CSS

breyta
  • Í media hluta dæmisins að ofan er miðill skjalsins er tilgreindur. Með þessu móti má aðgreina mismunandi útlit á sama innihald (XML/XHTML) fyrir t.d. prentverk eða lófatölvu og vísa þá í mismunandi CSS skjal fyrir hvern og einn miðil.
  • Mun auðveldara er að uppfæra útlit yfir heilt vefsvæði þar sem öllum útlitstengdum reglum er haldið til haga í fáum skjölum.
  • CSS býður upp á fullkomnari stjórn á útliti skjala.
  • CSS býður upp á möguleika sem bæta aðgengi fatlaðra að innihaldi skjala.
  • CSS minnkar í mörgum tilfellum stærð skjala.

Tengt efni

breyta

Tenglar

breyta