Kaikki aihepiirit: Luettelen alla aihealueittain tekemäni aihepiirit. Paluulinkkeinä tähän aihepiiriin on tämä valikko ja sivun yläreunassa oleva linkki Aihepiiriluettelo.
| ||||||||||||||||||
![]() | Aihepiiriluettelo > CSS-oppaan etusivu > Opassivut > 5. Mikä on CSS:n prosessointijärjestys > 5. yhtenä isona sivuna |
|---|
Edellinen sivu | Sivun jaksot: | Seuraava sivu![]() |
Tämä sivu on jaettu jaksoihin, jotka sisältävät seuraavia aiheita:
CSS-tiedostojen rakentelun kannalta olennaisinta on ymmärtää, missä järjestyksessä selain lukee CSS-ominaisuudet.

Periaatteessa selaimella on kolmenlaisia tyylisivuja (en voi antaa esimerkkejä vaan sinun on itse tutkittava käyttämääsi selainta):
asiakassovellus, joka on yleensä selain tai sitten jokin muu ohjelma, joka osaa käyttää tyylisivuja). Kyse on ohjelman omista elementtimäärittelyistä silloin, kun kukaan ei ole määritellyt tyylisivuja. Itse asiassa kyse on pääosin tavallisten HTML 3.2 tai HTML 4.01 elementtien ja attribuuttien ymmärtämisestä. Eri selaimilla on hieman toisistaan poikkeavia oletusarvoja. Tallennetut asetukset luovat eräänlaisen selaimen oman tyylisivutiedoston. Selaimilla voi olla myös tuki eräille CSS-ominaisuuksille, joita voi sovittaa mille tahansa www-sivulle. MS IE 5.x+:lla voi määrittää linkeille ominaisuuden hover. Sillä on sama merkitys kuin näennäisluokalla
:hover.
Mozilla Gecko -selaimet määrittävät HTML-asetukset UA CSS:n avulla res/html.css ja /res/html.css tiedostoilla (myös Opera hyödyntää UA CSS:ää muissa kuin HTML-toteutuksissa; käsittelen UA CSS:n käyttöä erillisivulla
).
Selaimen omat elementtimäärittelyt ovat
voimassa silloin, kun elementtejä ei ole CSS:n avulla
erityisesti määritelty.
.![[S]](../Kuvat/buttons/S.gif)
.Selain tulkitsee kaikki
määrittelyt tiettyjä sääntöjä
noudattaen. Useimmat säännöt perustuvat
ns. dokumenttipuuhun. Puuvertauksen lisäksi
tietokonekielessä käytetään
sukumetaforaa. Alkukielessä puhutaan mm.
vanhemmasta (parent) ja lapsista
(child). Suomenkielisen yleisen tietokonekielen
pohjalta on kuitenkin syytä käyttää ilmaisua
emo
(lue perustelut![[S]](../Kuvat/buttons/S.gif)
).
Lapsielementeillä saattaa edelleen olla pakollisia (required) ja siten tavallaan
luonnollisia lapsielementtejä (lapsielementit voivat olla
myös ei-välttämättömiä).
Emo- ja lapsielementtien välistä suhdetta havainnollistaa yksinkertaistettu dokumenttipuu:
BODY |
- H1 (pääotsikko, jonka
sisään laitetaan yleensä vain joitakin
rivinsisäisiä fonttityylielementtejä; ne
eivät ole elementin H1
välttämättömiä lapsia)
|
Suurin osa säännöistä on nimetty
sukumetaforaa käyttäen eikä metaforan rikkautta
voi täysin ilmaista suomenkielisissä vastineissa.
Alkukielen kuvakieli on kuitenkin syytä pitää
mielessä. Elementeistä puheen ollen on muistettava,
että nämä nimet liittyvät elementtitasoihin
ja elementtien keskinäisiin suhteisiin toisiinsa nähden
ns. dokumenttipuussa (systeemi toimii osittain myös
attribuuttivalitsimilla).
Käsittelen tässä yhteydessä myös
:first-child näennäisluokkavalitsimen
(sitä voisi kutsua
"näennäisesikoisluokkavalitsimeksi").
Se on osa koko systeemiä ja se voidaan
ymmärtää vain suhteessa muihin käsitteisiin.
Yritän selittää kaiken niin ruohonjuuritasoisesti
kuin voin. Elementtien keskinäisiä suhteita koskevat
CSS-metaforan osat ovat seuraavat:
vanhempieli "emoelementtitaso". Olennaista on se, että kirjoitettaessa emosta, emolla tulee olla vähintään yksi lapsitason elementti, jonka se sulkee sisäänsä. Se sulkee lapsielementin sisäänsä suoraan, ilman, että rakenteessa on niiden välissä muuta elementtiä eli kyseessä on ympäryselementti.

lapsieli mikä tahansa lapsitason elementti, jolla on emotason elementti. Huomaa, että lapset ovat vain ensimmäisen alatason elementtejä ilman, että rakenteessa on emo- ja lapsielementtien välissä muuta elementtiä. "Lastenlapset" ovat "perillisiä" (descendants). Lapsielementit voivat olla emoelementille pakollisia osaelementtejä, mutta ei välttämättä.
ensimmäinen lapsieli
esikoinen; elementtitasoista puhuttaessa kyseessä on ensimmäisen emoelementtitason jälkeen tuleva lapsielementtitaso (
:first-child -
näennäisluokassa kyse on puolestaan
yksittäisestä elementistä jollakin
elementtitasolla)esi-isä,
esivanhempieli "esi-isäelementti" (tai "esiemoelementti"). Osittain sama kuin
parent, mutta toistensa sisään sijoittuvia tasoja voi olla useita, kuten perheessä isoisällä on lastenlapsia ja lastenlapsilla voi edelleen olla lapsia jne.
perillineneli perilliselementtitaso. Osittain sama kuin
child, mutta elementtien välissä voi olla useita elementtitasoja. "Lapsenlapset" ovat aina perilliselementtejä.
viereissisarelementtieli "viereissisarelementtitaso". Sisarelementeillä on sama emo. Sisarelementit eivät ole koskaan keskenään sisäkkäin vaan ovat samalla tasolla ikään kuin siskokset.
Adjacent siblingon ilmoitetun sisarustason jälkeen seuraava saman tason elementti. CSS2 liittää "sisarussuhteisiin" vieläkin tarkempia ilmaisuja.
Adjacent siblingmäärittää vain elementtitason. Jotta esikoinen voitaisiin tarkasti nimetä, tarvitaan
:first-child
näennäisluokkaa. Preceding sibling on sisarusparven
esikoinen, ennen muita sisaria.
.
Perheessä lapsi perii vanhempansa ja
jälkeläinen saa perinnön esi-isiltään
tiettyjen lakien ja asetusten mukaisesti. CSS-ominaisuuksien
ymmärtämisessä on olennainen kysymys
"perimysjärjestyksestä" (inheritance).
Periytymisessä on kyse selaimen
automaattisesta toimintamekanismista, jolla ominaisuudet
sovitetaan eri elementeille. Periaate koskee toisten
sisällä olevia eli sisäkkäisiä
elementtejä, jotka ovat dokumenttipuun![[S]](../Kuvat/buttons/S.gif)
(document tree)
osia.
HTML-dokumenteissa määriteltävä
peruselementti on yleensä BODY.
BODY-elementin ominaisuuksien periytyminen toimii
hyvin erityisesti tietyillä lohkoelementeillä ja niiden
pakollisilla lapsilla. Lohkoelementeille automaattisesti
periytyviä ominaisuuksia ovat lähinnä
useimmat fontti- ja
tekstityyppimääreet.
Käytettävään tekstityyppiin
vaikuttavilla
elementeillä, kuten H1-H6, B ja
I säilyy vaihtelevassa määrin niiden
ominaispiirteet. H1-H6 säilyttävät
suhteelliset kokosuhteensa perustekstiin nähden,
mutta tekstityyli periytyy BODY-elementiltä.
Toisilla elementeillä perustyyli ei periydy
BODY-elementiltä vaan sen muuttaminen
edellyttää uudelleen määrittelyä. Syy siihen, miksi tietyt fontteihin liittyvät
ominaisuudet eivät periydy kaikille mahdollisille elementeille on yksinkertaisesti siinä, että
niille on määritelty selaimen omissa määrittelyissä tietyt perusominaisuudet.
Esimäärittelyjen määrä vaihtelee selainkohtaisesti. Siksi jotkut selaimet
tarvitsevat enemmän CSS:ää kuin jotkin toiset. Periytymissysteemissä on lisäksi
joitakin puutteita, mutta käsittelen niitä muissa yhteyksissä.
Kaikki ominaisuudet (kuten taustamäärittelyt) eivät periydy emolta lapselle (CSS2 spesifikaation liiteosassa on taulukko, joka kertoo, mitkä ominaisuudet ovat periytyviä ja mitkä eivät).
CSS2:een standardiin on lisätty arvo
inherit (esim. TABLE
{color:inherit;}), joka siis tarkoittaa, että arvo
peritään lähimmältä emoelementiltä.
Kyseessä on "pakotettu periytyminen".
Selainkohtaisia huomautuksia:
En suosittele arvon inherit
käyttämistä, koska monet selaimet, jotka muuten
osaavat sangen hyvin CSS:ää eivät sitä
ymmärrä. Omissa testeissäni se on toiminut vain
Mozilla 0.7:ssä sekä Mozilla 1.1a:ssa, mutta ei kaikissa suhteellisen
uusissa Mozilla Gecko -selaimissa.
.Automaattinen periytymissysteemi koskee oikeastaan vain
elementtien luonnollisia sisäkkäisyyssuhteita. Luonnollisella
sisäkkäisyyssuhteella tarkoitan sitä, että
esim. listaelementeillä voi edelleen alilistoja, joihin
automaattisesti sovitetaan CSS-ominaisuuksia. Elementtien
sisäkkäisyys voi olla hyvin monitasoista eikä
automaattinen periytyminen pysty luomaan kuin yleislinjat.
Tarkemman kontrollin aikaansaamiseksi voidaan luoda
ominaisuuksien sovittamisen vastaavuus
sääntöjä.
Vastaavuussäännöt luovat elementtien kanssa
ikään kuin "hahmon", jolle selain pyrkii
etsimään sitä vastaavan kohdan dokumentista. Tapauskohtaisia
sovelluksia voisi kutsua vaikka nimellä
tunnistettava hahmo
(a matching
pattern).
Koska tunnistettavien hahmojen tarkoitus on luoda
yksilöllisiin tilanteiseen sopivia
sääntöjä, CSS1 spesifikaatio
kirjoittaa tapauskohtaisista valitsimista
(contextual selectors), mutta nimitystä ei
käytetä CSS2 spesifikaatiossa (siinä
säännöt ilmaistaan käyttämällä
sanoja ancestor, descendant jne.; ilmaisu tapauskohtainen
valitsin
on kuitenkin niin kuvaava, että suosittelen
senkin käyttämistä).
Näissäkin toimintamekanismi perustuu pääosin dokumenttipuuhun ja suhteiden kuvaamiseen käytetään aiemmin selittämääni sukumetaforaa. Mutta toisin kuin automaattisessa ominaisuuksien periytymisessä, ominaisuuksia ei soviteta automaattisen mallin mukaan vaan ikään kuin avain ja lukko -periaatteella. Kontekstin mukaiset valitsimet ottavat nimensä mukaisesti huomioon ympäristön, jossa tyyli on määritelty. Määritelty tyyli on voimassa vain, mikäli elementti on oikeassa paikassa or sillä on tietty elementti vanhempana.
Itse asiassa yksinkertainen yleis- tai elementtityyppivalitsin on
tunnistettava hahmo. Monimutkaisissa
tunnistettavissa hahmoissa käytetään
kohdistetumpia valitsimia. Erottaaksemme ne yksinkertaisista
luokka- ja elementtityyppivalitsimista, tarkoitan tunnistettavalla
hahmolla sellaista sääntöjä, jossa on
vähintään kaksi ehtoa. Esimerkki
yksinkertaisesta tunnistettavasta hahmosta (![[M]](../Kuvat/buttons/M.gif)
![[S]](../Kuvat/buttons/S.gif)
):
table p {color:green;} /*
jälkimmäistä osaa tässä
säännössä kutsutaan nimellä
descendant selector; määrittelyssä on
huomattava, että kaarisulun eteen ei saa laittaa rivikatkoa,
sillä olen todennut, että se tekee
määrittelyt joskus toimimattomiksi
*/Tämän säännön mukaan sellaiset kappaleet jotka
ovat elementin TABLE
jälkeläisiä (descendant), saavat värin
green eli vihreän (kappaleet ovat elementin TD aloitus- ja
päätöskoodien sisällä).
Käytän itse tämän
tapaista menettelyä usein määritellessäni
ei-järjestettyjä listoja (UL) ja niille
erilaisia listakuvia. Käyttämällä ryhmittämistä![[S]](../Kuvat/buttons/S.gif)
, saadaan eri tason kuville yhtä aikaa
sama kuvaus. Alla on esimerkki tällaisesta ratkaisusta (![[M]](../Kuvat/buttons/M.gif)
![[S]](../Kuvat/buttons/S.gif)
- mukana on myös seuraavan
esimerkin mallit):
ul li, ul li li li {/* tässä esimerkissä listan ensimmäisen ja kolmannen tason kuvat saavat vihreän listakuvan (selitän toisessa yhteydessä listoille sallittuja ominaisuuksia) */
list-style-type: disc;
list-style-image: url(pallo-vihrea.gif);
list-style-position: inside;
margin-left: -10px; }
ul li li {/* tässä esimerkissä listan toinen taso saa punaisen listakuvan; ilman lisämäärittelyä se olisi edellisen sääntöryhmän perusteella vihreä */
list-style-type: disc;
list-style-image: url(pallo-punainen.gif);
list-style-position: inside;
margin-left: -10px;}
CSS1-tason tunnistettavissa hahmoissa
voidaan elementtityyppivalitsimiin lisätä
luokka-tarkentimia. Tavallaan jo luokkavalitsimella tarkennettu
elementtityyppivalitsin on jo sinänsä tarkoittamani
tunnistettava hahmo, koska siinä samaan kohtaan annetaan
kaksi ehtoa (elementti ja sille luokka). Mutta
liittämällä nämä muihin
elementtityyppivalitsimiin, saadaan monimutkaisempia
tunnistettavia hahmoja seuraavien esimerkkien tapaan (![[M]](../Kuvat/buttons/M.gif)
![[S]](../Kuvat/buttons/S.gif)
- mukana on myös edellisen
esimerkin mallit):
ul.class li {
list-style-type: disc;
list-style-image: url(pallo-vaalea.gif);
list-style-position: inside;
margin-left: -10px;}
table.erityinen td p {color:green;} /* tämän
säännön mukaan taulukkosolun sisällä
oleva kappale saa värin vihreä, vain mikäli se on
taulukossa, jolla on luokka erityinen
. Huomaa, että
luokkaa ei tarvitse määritellä, sillä se on
tässä tapauksessa epäolennaista, sillä selain
etsii määrittelyä taulukkosolun sisällä
olevalle kappaleelle! */Uudempi CSS määrittely tuo
vielä tarkempia sovitussääntöjä. Seuraava kaavio kuvannee asiaa -
(OL ja
UL ovat listatyyppejä; LI
tarkoittaa yksittäisiä listaelementtejä; olen
yrittänyt selittää muutamin kommentein
systeemiä - mieti sitä joskus kaikessa rauhassa):
1) li ol li/* sovitetaan seuraavassa esimerkissä kohtaan, jotka on merkittyclass="a"; tämä kuuluu jo CSS1 määrittelyihin ja suosittelen toistaiseksi vain tämän tyyppisten määrittelyjen käyttämistä */
2) li ol > li/* sovitetaan seuraavassa esimerkissä kohtaan, joka on merkittyclass="b"*/
3) li ol > li:first-child/* sovitetaan seuraavassa esimerkissä kohtaan, joka on merkittyclass="b+"*/
4) li ol + ul/* sovitetaan seuraavassa esimerkissä kohtaan, joka on merkittyclass="c"*/
<UL>
<LI>
<OL>/*
<LI class="b+"></LI>class="b+"on elementinOL"lapsitason" ensimmäinen lapsielementti (kyseessä on ns. first-child selector tarkennettuna :first-child pseudo-class näennäisluokalla): tälle elementille määritellyt ominaisuudet eivät koske seuraavan tason listaelementtejä eikä edes seuraavia samalla tasolla olevia listaelementtejä */
<LI class="b"></LI>/*class="b"on elementinOLtoinen lapsielementti (kyseessä on ns. first-child selector): mitkään tämän tason lapsielementeille määritellyt ominaisuudet eivät koske seuraavan tason listaelementtejä */
<UL>/*
<LI class="a"></LI>class="a"; tämä saa arvon ensimmäisen säännön mukaan, vaikka ei olekaan elementinOLensimmäisen tason lapsi vaan vasta seuraavan tason lapsi eli "lapsenlapsi"; mikäli tällä elementillä olisi edelleen lapsia, ne saisivat tämän elementin määrittelyt */
</UL></LI></OL><UL class="c">/* kyseessä on elementinOLjälkeen seuraavaksi löytyvä elementtiULeli saman tason sisarelementti, (kyseessähän on adjacent sibling selector) , joka määrittelee myös sitten yksittäisten lista-elementtien ulkonäön */
<LI></LI>
</UL></LI>
</UL>
On kuitenkin on muistettava, että tunnistettavan hahmon pituus ei yksistään ratkaise. Minulle kävi listatestiä tehdessäni virhe, kun en huomannut kaikkia sääntöjä ja niiden keskinäisiä vuorovaikutussuhteita. Seuraava esimerkki hahmottaa niitä sinulle:
li ol+ul
{list-style-type: disc; /* tämän
säännön tulisi muuttaa listakuva punaiseksi
testatessani sitä eräällä Netscape 6.x
esiversiolla */
list-style-image:
url(./Css/Kuvat/pallo-punainen.gif);
list-style-position: outside;}
ul li {list-style-type: disc; /* sääntö ei
jää voimaan, koska lyhyempi hahmo UL LI
kumoaa
sen, sillä se jatkaa edellistä
määrittelyä siitä, mihin se
päättyi! */
list-style-image: url(./Css/Kuvat/pallo.gif);
list-style-position: outside;}
li ol+ul li {list-style-type: disc; /* jotta
ensimmäinen sääntö saadaan voimaan ja
lyhyempi kumottua, ensimmäistä patteria tulee
pidentää yhdellä elementillä - nyt Netscape
näyttää suunnitellun kuvan! */
list-style-image:
url(./Css/Kuvat/pallo-punainen.gif);
list-style-position: outside;}
Kaikista tarkimmat tunnistettavat hahmot voisi luoda yhdistämällä
elementtityyppi- ja attribuuttivalitsimia![[S]](../Kuvat/buttons/S.gif)
.
Selainkohtaisia huomautuksia:
MS IE ei tue mitään CSS2-tason tuomaa uutta tunnistettavaa hahmoa.
Vain Mozilla Gecko ja Opera 7.x+ -selaimet tukevat kaikkia tällä sivulla mainittuja
tunnistettavia hahmoja mukaan luettuna :first-child näennäisluokan ja
attribuuttivalitsimet (voit katsa virhesivulta
mallilistan![[S]](../Kuvat/buttons/S.gif)
siitä, miten valitsinten tulisi toimia).
Opera 3.6x eli tue .class p {...}. kaltaisia sääntöjä.
Opera 3.6x+ tukee OL > LI {...} kaltaisia sääntöjä.
Opera 5.x-6.x -selaimet tukevat myäs osittain tai täysin OL + UL {...}
kaltaisia sääntöjä.
Opera 4.x+ -selaimet tukevat attribuuttivalitsimia.
Sovittamissäännöt
ovat periaatteessa sangen
yksinkertaisia Niihin liittyy myös porrastettu
valintajärjestys (cascading order; lue
termin selitys![[S]](../Kuvat/buttons/S.gif)
). Selain
saattaa kohdata samanarvoisia sääntöjä,
jolloin saman arvoisista säännöistä
viimeiseksi annettu jää voimaan.
Kokonaisuudessaan ominaisuuksien
sovittamisen yleisperiaate on näin ollen se, että
yksityiskohtaisempi sääntö voittaa yleisemmän
ja viimeksi mainittu saman arvoinen sääntö voittaa
aiemmin määritellyn säännön.
Tässä prosessissa on muistettava myös ns.
tuontisäännön (@import) oikea
käyttö, jota käsittelin aiemmin sivulla Miten CSS liitetään Web-sivuihin![[S]](../Kuvat/buttons/S.gif)
.
Porrastettu valintajärjestys on osa CSS-ominaisuuksien prosessointijärjestystä. Se on kytkeytynyt hahmonsovitukseen (pattern matching). Koko systeemin voi yksinkertaistaa seuraaviin kolmeen tekijään, jotka esitän vielä alkuperäistermien kanssa:
Koska nämä kolme ovat koko ajan yhtä aikaa toiminnassa, on mahdotonta yksiselitteisesti esittää yleismallia, joka kuvaisi sitä, mikä on yksityiskohtaisempi määrittely kuin joku toinen. Ennemminkin voidaan esittää esimerkkejä, mikä määrittely yksittäisessä tilanteessa ohittaa jonkun toisen määrittelyn. Sivujen tekijän täytyy miettiä, miten selain tekee ratkaisunsa. Hänen tulee myös tietää, mitä selain todella osaa toteuttaa ja mitä ei! Seuraava järjestys suuntaviivoja pyrittäessä yleisemmästä yksityiskohtaisempaan määrittelyyn. Järjestys voi olla yksittäisessä tilanteessa toinen.
BODY-elementti ilman luokkaa.BODYBODY
luokkatarkennettunaSivuntekijöiden pyrkimyksenä on
varmastikin luoda mahdollisimman tehokas ja vaivaton systeemi,
jossa CSS-määrityksiä tarvitaan suhteellisen
vähän dokumentin BODY-osassa. Annan
seuraavat suositukset:
BODY-määrittely ja
yleinen taulukkoelementtien kuvaus (siitä on tarkempi
selitys sivulla Taukot![[S]](../Kuvat/buttons/S.gif)
).BODY-elementille, jolla
on luokka- ja id-tarkennin.BODY-elementistä lasketuilla
tunnistettavilla hahmoilla.Normaalin järjestyksen voi ohittaa ns. eli tärkeyssäännöllä (important rule), esim:
body {color: black !important;
background-color: white !important;}
Mikäli selain ei tapaa toisia samanlaisia tärkeyssääntöjä, vastaavia jälkeenpäin annettuja ominaisuuksia ei oteta huomioon. Kyse ei ole kuitenkaan vain yksinkertaisesta järjestykseen liittyvästä säännöstä. Näin määritellyt ominaisuudet ohittavat myös elementille luokkiin ja tunnistimiin (id) perustuvilla tunnistettaville hahmoille annetut sekä elementtien sisälle yksilöllisesti annetut ominaisuudet.
Sääntö koskee kuitenkin vain
elementtiä ja sille annettuja ominaisuuksia, joihin
se on liitetty. Jos lapsielementille on annettu
poikkeava arvo, lapsielementti ottaa sen. Seuraavat esimerkit
valaisevat asiaa (![[M]](../Kuvat/buttons/M.gif)
![[S]](../Kuvat/buttons/S.gif)
):
body {color: black !important;}/* värimääritys ohitetaan, vaikka
body.CssSite {color:blue;}BODY-elementille on määritetty luokka */
p.uusi {color:blue;} /* ensimmäinen määrittely ohitetaan elementin/* uusi !important-sääntö kumoaa kaikki edelliset määrittelyt elementinPosalta, sillä elementilleBODYannettu määrittely ei ohita uudelleen määritellyn lapsielementin ominaisuutta (sillä, onko lapsielementille annettu luokka ei ole tässä tapauksessa mitään merkitystä) vaan tälle elementille väriarvo tulee voimaan; mutta mikäli sitä ei olisi annettu, se saisi sen tärkeyssäännön omaavalta BODY-elementiltä */
p {color:olive !important;}Posalta */
p#id_p {color:blue;}/* edellisen tärkeyssääntö ohittaa tämän värimäärittelyn; samoin ensimmäisen dokumentin runko-osassa olevan määrittelyn; koska se on voimakkaampi kuin id-valitsin, se on samalla voimakkaampi kuin tunnistettaviin hahmoihin perustuvat ominaisuudet */
...Saatat luulla, että tämän tekstin väri on purppuranpunainen, mutta näin ei olekaan, koska tärkeyssääntö antaa tälle värin
<BODY>
<P style ="color:purple;">olive. Tätäkö sinä juuri halusit?</P>
<P style ="color:purple !important;">Jos haluat, että määrittely toimii, sinun pitää laittaa siihen tärkeyssääntö!</P>
Sen vuoksi, että tärkeyssääntö ohittaa kaikki elementille määritellyt muut säännöt, katson sen olevan eräänlainen erityissääntö (termi on kuitenkin hieman ongelmallinen - ks. Alaviite 1). Sivujen suunnittelija saattaa määrätä ohitettavaksi kuvauksen, jota hän ei haluasikaan ohittaa! Koska em. sääntö tuo melkoista päänvaivaa sivujen laatijalle ja selaimelle lisätöitä, suosittelen sen käyttämistä erittäin harkitusti.
Selainkohtaisia huomautuksia:
Tärkeyssääntö ei toimi Netscape 4.x -selaimilla.
Näennäiselementtien :first-letter ja :first-line
tärkeyssääntö liittyy vain itse elementtiin. Jos heti elementin alussa on toinen elementti
(esim. >p>>cite>) lapsielementille annetut poikkeavat arvot säilyvät
Opera 7.x -selaimissa tärkeyssäännön käytöstä huolimatta (esim.
cite {font-weight:normal}, vaikka on p:first-letter {font-weight:bold
!important}). Muilla moderneilla selaimilla näennäisluokille !important
avulla annetut arvot voittavat. Mielestäni Opera 7.x toimii täysin johdonmukaisesti.
Tärkeyssäännön uudelleen määrittely ei aina onnistu.
Koska CSS:llä yleisimpänä käyttökohteena voidaan pitää käytettyyn tekstityyliin vaikuttamista, käsittelemme Seuraavaksi fontin ja tekstin määrittämistapoja sekä erilaisten käyttötilanteiden huomioimista.
Alaviite
1. On
ongelmallista kirjoittaa
tärkeyssääntö
, sillä
kyseessä ei ole siinä mielessä
sääntö, mitä CSS:ssä useimmiten
tarkoitetaan säännöllä: ks. selitys sivulta
Valitsimet![[S]](../Kuvat/buttons/S.gif)
. Koska se on kuvauslohkon
yksittäisen kuvauksen (declaration) sisällä (em.
sanan merkitys on selitetty sivulla Miten CSS liitetään Web-sivuihin![[S]](../Kuvat/buttons/S.gif)
, jolloin sitä voisi kutsua
tärkeyskuvaukseksi. Täsmälleen
ottaen kyse on tärkeysominaisuudet
(important
properties), koska se liitetään juuri
ominaisuuslistaan. Koska se kuitenkin luo poikkeuksellisen
kuvauslohkon, jonka painoarvo riippuu
CSS-säännöistä, se luo tavallaan
eräänlaisen säännön. Ks. myös
tämän sivun englanninkielisen version
alaviite
.
![Tämän sivun alkuun [Alku]](../Kuvat/buttons/TopImage.gif)
![Edellinen sivu tai jakso [Edell.]](../Kuvat/buttons/leftArrow.gif)
![Seuraava sivu tai jakso [Seur.]](../Kuvat/buttons/rightArrow.gif)
Etusivu
Mitä uutta?
Sanasto
Sisällysluettelo
Kaikki aihepiirit![[Palaute]](../Kuvat/buttons/Email.gif)
![Tulosta tämä sivu! [Tulosta]](../Kuvat/buttons/Print.gif)
![Sivun englanninkielinen versio - The English version of the page [En]](../Kuvat/buttons/En.gif)
![Kopiointioikeudet - Copyrights [Copyr.]](../Kuvat/buttons/copyright.gif)

![Tämän sivun alkuun [Alku]](../Kuvat/buttons/Top.gif)
