Asiayhteyden mukaan määräytyvät tyylit

Asiayhteyden mukaan määräytyviä tyylejä selvennetään seuraavien esimerkkien avulla. Esimerkissä on p- ja strong-tyyli, joille on määritelty muutamia ominaisuuksia. p-tyyliä käytetään normaalikappaleiden muotoilemiseen ja strong-tyyliä käytetään erilaisten korostusten tekemiseen. strong-tyylillä kirjoitettu teksti tulee aina jonkin kappaletason elementin sisään. Seuraavassa esimerkissä jokainen strong-tyylin esiintymä on aina punainen riippumatta elementistä, jonka sisällä strong-elementtiä käytetään.

p {
background-color: white;
color: black;
text-align: justify;
}
strong {
background-color: white;
color: red;
}

Seuraavasta kuvasta on nähtävissä strong-elementillä määritellyt kohdat. Myös h1-elementin sisällä on käytetty strong-elementtiä.

Graphic8
Kuva 8: Alkuperäisillä korostuksilla oleva dokumentti.

Edellisessä esimerkissä ei käytetty asiayhteyden mukaan määräytyviä tyylejä. Esimerkissä asiayhteyden mukaan määräytyvänä tyylinä voitaisiin käyttää p-elementin sisällä olevien strong-elementtien sisällön värin muuttamista hopean harmaaksi. Seuraavassa esimerkissä on toteutettuna kyseinen tyyli. Tyylin nimi muodostuu nyt kahden elementin nimestä. Ensiksi annetaan sen elementin nimi, jonka sisällä toisena olevan elementin on esiinnyttävä. Esimerkkitapauksessa strong-elementti on p-elementin sisällä.

p strong {
background-color: white;
color: silver;
}
p {
background-color: white;
color: black;
text-align: justify;
}
strong {
background-color: white;
color: red;
}

Seuraavassa kuvassa on käytetty edellisen esimerkin tyylitiedoa XHTML-dokumentissa. Esimerkistä on nähtävissä, että h1-elementin sisällä oleva korostus on punainen ja p-elementin sisällä oleva korostus on hopean harmaa.

Graphic9
Kuva 9: Esimerkki asiayhteyden mukaan määräytyvästä tyylistä.

Edellä olevan esimerkin kaltaisia sisäkkäin määriteltyjä tyylejä voi olla useampiakin. Tällöin tyyli otetaan käyttöön vasta kaikkien tyyliehtojen tullessa voimaan. Seuraavassa esimerkissä on määritelty asiayhteyden mukaan määräytyvä tyyli, jonka järjestämättömän listan alkiot ovat punaisia. Tällöin XHTML-dokumentissa olevat kahden sisäkkäisen ul-elementtien sisällä olevat li-elementit eli lista-alkiot ovat vihreitä. Tällä tavoin voidaan rajata tyylin käyttö todella tapauskohtaiseksi, koska esimerkissä ainoastaan toisen tason lista-alkiot värjätään punaiseksi. Esimerkin tyylin määrittely ei vaikuta ollenkaan ensimmäisen tason lista-alkioihin.

ul ul li{
background-color: white;
color: green;
}

Seuraavassa on esimerkkinä käytetävä listan XHTML-koodi.

<ul>
<li>Listan ensimmäinen alkio</li>
<li>Listan toinen alkio
<ul>
<li>Sisemmän listan ensimmäinen alkio</li>
<li>Sisemmän listan toinen alkio</li>
<li>Sisemmän listan kolmas alkio</li>
</ul>
</li>
<li>Listan kolmas alkio</li>
</ul>

Seuraavassa kuvassa edellisen esimerkin tyylien avulla muotoiltu XHTML-dokumentti. Kuvasta on nähtävissä sisemmän listan poikkeava väri.

Graphic10
Kuva 10: Esimerkki asiayhteyden mukaan määräytyvistä lista-alkioista.

Seuraavan esimerkin järjestämättömän listan kaikki lista-alkiot ovat punaisia riippumatta sisäkkäisten listojen tasosta. Esimerkillä on tarkoitus osoittaa, että asiayhteyden mukaan määräytyvien tyylien määrittely huomioi ainoastaan elementtien esiintymisjärjestyksen. Tällöin sisäkkäisiä listoja voi olla monia, mutta jokainen sisäkkäinen lista esitetään punaisena, koska aiemmin aloitetut listat jätetään huomioimatta.

ul li {
background-color: white;
color: red;
}

Asiayhteyden mukaan määräytyviä tyylejä käytettäessä voidaan käyttää myös tyylien aliluokkia. Seuraavassa esimerkissä esitetään punaisella kaikki sellaiset strong-elementit, jotka ovat jonkin erikois-aliluokan esiintymän sisällä.

.erikois strong {
background-color: white;
color: red;
}

Toisessa esimerkissä esitetään punaisella sellaisten strong-elementtien sisältö, jotka ovat nimenomaan p-elementin sisällä ja joiden aliluokan nimi on erikois.

p.erikois strong {
background-color: white;
color: red;
}

Asiayhteyden mukaan määräytyviä tyylejä kannattaa käyttää aina kuin vain mahdollista koska niiden käyttäminen ei edellytä mitään muutoksia XHTML-koodiin. Monesti asiayhteyden mukaan määräytyvillä tyyleillä voi korvata useita aliluokkia joiden käyttäminen edellyttäisi sopivan class-attribuutin lisäämistä XHTML-koodiin.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/tyovaline/css/index8.html
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2003-09-23 16:21:09
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto