A leírás a CSS1 ismertetését tartalmazza. A CSS (Cascading Style Sheet)
egy olyan stíluslap megvalósítás, amely lehetővé teszi, hogy a HTML
oldalak szerzői oldalaikhoz egyedi stílust rendeljenek hozzá. A CSS egyik
alapvető tulajdonsága a folyamatos stíluslap - HTML lap kapcsolat. A lapok
szerzői az általuk kedvelt stílust egyszer rögzítik, és
hozzákapcsolhatják minden általuk készített HTML laphoz. Ez a leírás
tartalmazza ennek megoldási lehetőségeit.
Stíluslappal (style sheet) tervezni nem nehéz, de
szükséges hozzá némi alapvető HTML ismeret. Ezt szemlélteti az alábbi
példa:
H1 {color: blue}
Fenti példa tartalmazza a CSS használatának alapszabályait - egy css
utasítás két részből áll:
a szelektor tartalmazza a formázandó HTML tag megnevezését
(H1);
a deklaráció végzi el a szelektorban meghatározott tag
formázását.
Maga a deklaráció is két részre bontható: egy tulajdonságra és a hozzá
tartozó értékre (szín: kék). A szelektor a tulajdonképpeni kapocs a HTML,
mint leírónyelv és a stíluslap között; szinte minden HTML tag betöltheti a
szelektor szerepét. A teljes HTML referenciát lásd itt Az
előbb említett szín (color) tulajdonság csak egy a több, mint 50
közül, amelyek segítségével alakíthatjuk egy HTML oldal kinézetét. (A
továbbiakban ahol oldal, dokumentum olvasható, értelemszerűen
HTML oldalra, dokumentumra vonatkozik.)
A W3CHTML4 specifikációja
határozza meg a stíluslap és a dokumentum kapcsolódási felületeit. A
következő példa mutatja be a kapcsolódás négy lehetséges módját:
A fenti példában látható első lehetőség a csatolásra a
<LINK> tag használata; külső stíluslap behívására.
Második lehetőségként a dokumentum HEAD szekciójában elhelyezett
<STYLE> tag, ahol közvetlenül definiálhatók a használni
kívánt stílusok, vagy az '@import' kulcsszóval külső stíluslap
importálható. Az utolsóként bemutatott lehetőség pedig valamely HTML elem
STYLE attribútumának használata, a dokumentum BODY szekciójában.
A fenti (egyszerű) példában használt stílus1.css
állomány felel azért, hogy az oldal háttérszíne szürke legyen, a
stílus2.css pedig a címsor szövegét állítja pirosra.
A böngészők általában figyelmen kívül hagyják az általuk ismeretlen
elemeket. Ezért a régebbi böngészők jó esetben egyszerűen 'elsiklanak' a
<STYLE> elem felett. Kellemetlenebb eredménnyel jár, ha
belezavarodnak tartalmába. Ez megelőzhető, ha egy standard SGML
utasítással elrejtjük előlük (A megjegyzés kezdete: <!-- , a vége pedig
a -->) Például:
Néhány tulajdonság eltérő csoportosítási szintaktikát is megenged:
H1 {font: bold 12pt helvetica}
Példa a csoportosításra:
A fenti példában látható, hogy a csoportosítás
segítségével beállítottuk, hogy a H1,H2,H3 címsor is kék legyen. A H1
címsor esetén a betűtípusra vonatkozó tulajdonságokat csoportosítottuk. A
CSS-ben használt különböző mértékegységet a 6. fejezetben
tárgyaljuk.
Az első
példában a H1 elem színbeállítását mutattuk be. A következőkben
tartalmaz egy <EM> (emphasized, vagyis
kiemelt) elemet is:
<H1>A címsor
<EM>mindig</EM> fontos.</H1>
Ha az <EM> elemhez nincs külön szín rendelve, a
kiemelt (emphasized) "mindig" szó mindig örökli a tartalmazó
(container) elem színét, jelen esetben a kéket. Hasonlóképpen más
stílus-tulajdonságok is öröklődnek (pl.:font-family, font-size).
Alapértelmezett stílustulajdonság beállításához az alkalmazni kívánt
stílust olyan elemhez kell kötni, amely tartalmazza mindazokat az
elemeket, amelyekre a stílust vonatkoztatni akarjuk. A HTML
dokumentumokban erre a célra megfelelhet a <BODY> elem:
Ez a stíluspélda a BODY szövegszínét kékre állítja be,
háttérként képet rendel hozzá. Amennyiben a kép nem érhető el, a
háttérszín világoszöld lesz. Látható, hogy a felsorolás lista szövegszínét
nem állítottuk be kékre, ezt a tulajdonságát örökölte.
Van azonban néhány stílustulajdonság, amely nem öröklődik (Ezek közé
tartozik pl. a background), de a szülő elem háttértulajdonságát néhány
tartalmazott (contained) elem láthatóan hagyja. (Ha egy
táblázatnak nem adunk meg 'background' /háttér/ tulajdonságot, átlátszik
rajta a BODY háttere.)
Egy más fajta öröklődést mutat be a következő példa. Gyakran előfordul,
hogy egy tulajdonság értéke egy százalékos érték, amely egy másik
tulajdonság értékére vonatkozik.
P {font-size: 10pt}
P {line-height: 120%}
Itt a 'line-height' (sortávolág) tulajdonság értéke a 'font-size'
tulajdonság értékének 120% -a lesz, vagyis -jelen esetben - 12 pont.
A HTML elemek stílusbeállítási rugalmasságának növelése érdekében a W3C új attribútumot vett fel a
HTML-be: ez a CLASS (osztály). A 'BODY' minden eleme osztályba
sorolható, az egyes osztályok pedig stíluslapból megcímezhetőek.
A fenti példában láthatjuk, hogy definiáltunk egy
stílust (mezei névvel), amely a H1 szelektorra vonatkozik, majd
pedig a H1-es tag beillesztésénél megadtuk, hogy tartozzon a "mezei"
osztályba. (CLASS=mezei)
Az osztályba sorolt elemekre az öröklődés általános szabályai
vonatkoznak. Öröklik a stílusértékeket a dokumentum struktúrájában
felettük álló ún. szülő elemeiktől. Minden azonos osztályba
tartozó elem megcímezhető egyszerre is, elhagyva a hozzájuk tartozó tag
nevét:
.mezei {color: green}
/*minden mezei osztályba tartozó elem (CLASS=mezei)*/
Megjegyzendő, hogy szelektoronként (HTML elemenként) csak egy osztály
definiálható!
A fenti példában látható, hogy a .mezei stílust több
szelektor esetén is felhasználhatjuk (H1, P), hiszen a deklarálásnál nem
kötöttük ki, hogy mely szelektorokra legyen érvényes. Azt is láthatjuk,
hogy a SPAN tag segítségével karakterszintű formázásokat is
használhatunk.
A HTML -be felvételre került az 'ID' attribútum is, amely lehetővé
teszi az egyedi azonosítók felvételét a dokumentumba. Ennek a lehetőségnek
különleges jelentőséget ad, hogy felhasználható stíluslap szelektorként,
és megcímezhető a '#' előtaggal.
Az fenti példa első esetében (#z98y) a kiválasztott
formázást a 'P' elemhez feleltettük meg, az 'ID' attribútumérték
segítségével. (A letter-spacing a betűk közti távolságot határozza meg) A
második esetben kettős feltételt támasztottunk: a formázás akkor lép
érvénybe, ha a H1 elemet a '#z98y' azonosítóval (ID) látjuk el. Ezért ez
már nem vonatkozik a 'P' elemre.
Az ID attribútum szelektorként való használatával HTML elemekre
alapozott stílustulajdonságok állíthatóak be.
Az öröklődés szabályai mentesítik a stíluslap tervezőjét egy csomó
fölösleges gépelés alól. A tulajdonságok beállítása során elég egyszer
elkészíteni az alapértelmezettet, utána felsorolni a kivételeket. Tegyük
fel, hogy az 'EM' elem színét pirosra szeretnénk változtatni.
H1 {color: blue}
EM {color: red}
Mikor a stíluslap aktív, minden kiemelt (<EM>)
szövegrész, akár a H1 elemen belül, akár azon kívül található, vörösre
változik. Abban az esetben, ha csak a H1 -en belüli EM
elemeket akarjuk vörösre színezni, a CSS kódot az alábbiak szerint kell
megváltoztatni:
H1 EM {color: red}
Összekapcsolt szelektorok használata esetén azok az elemek lesznek
megcímezve, amelyek a felsorolásban utoljára állnak. Tehát akár kettőnél
több elem is 'egymásba ágyazható' ilyen módon.
A fenti példában látható, hogy a definíciót úgy
készítettük el, hogy azon listaelemek, amelyek előtt (legalább) egy UL tag
szerepel, legyenek zöld színűek és kis méretűek, míg azok, amelyek elött
(legalább) két UL tag szerepel (vagyis egymásbaegyázott elemekről van szó)
legyenek kék színűek és extra kicsi méretűek.
Természetesen ezen szelektorokat is csoportosíthatjuk, tehát érvényes a
következő stílusmegadás:
A CSS kódban elhelyezett megjegyzések hasonlóak a C programnyelvben
elhelyezett megjegyzésekhez, vagyis a kívánt részt /* és
*/ karakterek közé kell zárni:
EM {color: red} /* A kiemelt szövegrész vörös!*/
A megjegyzések nem ágyazhatók egymásba, illetve más CSS utasításba.