Viimeksi muutettu:
Katso ponnahdusikkunassa, miltä oppilaan sivu näyttää muutettuna!. Huomaa, että tämä on vain testisivu, enkä ole päivittänyt sen asiasisältöä.
Edellisen luettelon kolmessa ensimmäisessä kohdassa on kyse elementin sisällä olevista, asiakirjaan upotetuista ja asiakirjan ulkopuolisista tyyliarkeista. Sitä miten niitä tulisi käyttää, tulee tarkastella CSS:n perusfilosofiasta käsin. Tarkoituksenahan on se, että elementtien esitysasua olisi mahdollisimman helppo jälkikäteen muokata.

CSS voi käyttää kolmea erityisattribuuttia.
Attribuuttia style (style="...")
elementin sisään tuleville suorille tyyliarkeille,
class (class="...") ja id
(id="...") ulkopuolisille tyyliarkeille.
Käsittelen tässä yhteydessä tarkemmin vain
attribuutin style käytön.
Jos tyyliarkkeja käytetään
elementtien sisällä käyttäen
tyyliattribuuttia, kuten esim. <TD style="border:thin
solid #660033">, menettely ei oleellisesti poikkea HTML
3.2:n attribuuttimäärittelyistä. Tätä
menettelytapaa nimitetään englanninkielisissä
teksteissä myös rivinsisäisten tyyliattribuuttien/
tyylien käyttämiseksi (inline style sheet(
attribute)s). Jos haluat muuttaa elementin
aloitusmerkinnän sisään tekemääsi
määrittelyä, joudut etsimään sen muun
koodin seasta aivan kuin HTML 3.2 tyyliset attribuutit!
Tästä rajoituksesta huolimatta myös näillä tyyliarkeilla on perustavalaatuisia eroja HTML 3.2 elementtien ulkoasua määritteleviin attribuutteihin nähden:
properties, joka suomennetaan yleensä sanalla
ominaisuudet. Ne määritellään siten, että ensin annetaan ominaisuuden nimi ja kaksoispisteen (
:) jälkeen sen arvo tai useita samalla
kertaa annettuja arvoja. HTML 3.2 attribuutteja voi
antaa vain yhden kerrallaan eli attribuutilla voi olla kerrallaan
yksi arvo. CSS-ominaisuuksia voi antaa yhtä aikaa
kuinka paljon tahansa kunhan yksittäiset ominaisuudet ja
niiden arvot erotetaan toisistaan puolipisteellä
(;), esim. style="color:#660033;
background-color:yellow;".Tyyliarkit ovat ikään kuin attribuuttikokoelmia.
Tässä mielessä CSS toimii aina attribuuttitasolla
riippumatta tavasta, millä tavoin elementtien ominaisuudet
määritellään. Sekaannusten
välttämiseksi käytän ilmaisua ominaisuudet
tai kirjoitan vain CSS-määrittelyistä.
Vaikka tyyliattribuutit ovat heikoin tapa
hyödyntää CSS-ominaisuuksia, ne ovat kuitenkin
käyttökelpoisia silloin, kun
määritellään elementeille absoluuttisia
paikkoja. Seuraava määrittely antaa kuvalle elementille
120 pikselin sijainnin sivun yläreunasta laskien (voit
määritellä kuvan muut arvot joko HTML 3.2
attribuuteilla tai lisätä tyyliattribuutin
sisään enemmän CSS-ominaisuuksia (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
):
<IMG src="../../Kuvat/omakuvaIso.gif"
style="position:absolute; top:120px;">
Käytä tyyliattribuutteja harkiten! Mieti ensin tarvitsetko välttämättä juuri tiettyyn kohtaan erillismäärittelyn.
Mielestäni aina on mielekästä luoda ulkopuolinen CSS-tyyliarkkitiedosto, jos tyyliarkkeja käyttäviä asiakirjoja on enemmän kuin kaksi. Laadi erillistiedostoon koko sivustossasi käytettävät perustyylit.
Ulkopuolisissa tyyliarkeissa määritellyillä
ominaisuuksilla on sama funktio kuin tyyliattribuuteilla.
Niissä annetuilla CSS-ominaisuuksilla P {color:blue;
border:1px solid blue; } on sama vaikutus kuin <P
style="color:blue; border:1px solid blue; ">, mutta
ominaisuuksia ei ole annettu elementille suoraan vaan
epäsuorasti. Jollei toisin ole erikseen
määritelty, ominaisuudet koskevat kaikkia dokumentin
kappaleita. Tyyliattribuutin kautta annetut ominaisuudet koskevat
sen sijaan vain yhtä kappaletta (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
).
Ulkopuolisten tyyliarkkimäärittelyiden vaikutus on saman tapainen kuin HTML 3.2 dokumenttien esitystyyliin vaikuttavilla attribuuteilla, mutta sillä erolla, että dokumentin runko-osassa ei tarvitse välttämättä käyttää lainkaan esitystyyliin vaikuttavia attribuutteja!
Kun käytät ulkopuolisia tiedostoja, anna tiedostolle
nimeksi esim. css_tiedoston_nimi.css ja linkitä se
HTML-tiedostoosi. Linkitys on muotoa <LINK
rel="stylesheet" type="text/css"
href="tyyliarkkitiedosto.css">. Voit
linkittää joko paikallisiin hakemistoihin tai
käyttää vaikka toisten tekemiä
tyyliarkkitiedostoja ja linkittää niihin. Vapaasti
käytettäviä CSS-tiedostoja löydät
ainakin W3C organisaation sivuilta (ns. core stylesheets) ja ne
ovat muotoa <LINK rel="stylesheet" type="text/css"
href="http://www.w3.org/stylesheets/Core/Modernist">
Ulkopuolisiin tiedostoihin voi viitata myös käyttäen ns. tuontisääntöä (import rule), jota käsittelen edempänä.
Upotetuilla tyyliarkeilla tarkoitetaan asiakirjan HEAD-osaan
liitettyjä tyyliarkkeja. Ominaisuuksien
määrittelyt ovat samoja, joita käytetään
ulkopuolisissa tyyliarkkitiedostoissa. Ne liitetään
asiakirjaan ennen runko-osaa (BODY)
<HEAD></HEAD> koodien väliin eli
"upotetaan" (embed) asiakirjaan käyttäen
STYLE-elementtiä.
Suosittelen,
että laitat tähän määrittelyyn
vain sellaiset tiedot, joita käytät
yhdessä asiakirjassa. Voit myös
ohittaa muille sivuille ulkopuolisissa CSS-tiedostoissa antamiasi
ominaisuuksia. Esimerkiksi haluat tiettyyn asiakirjaan
muista poikkeavan taustakuvan ja -värin. Sinun ei tarvitse
määritellä kaikkea uusiksi. Riittää,
että annat uudet ominaisuudet vain taustalle. Muut arvot
jäävät voimaan. Seuraavan esimerkin ominaisuudet
antavat asiakirjalle keltaisen pohjavärin ja uuden
taustakuvan, joka on keskitetty sivulle ja joka ei toistu
(näet esimerkissä myös tyyliarkin oikean
sijoittelun - mallissa on mukana myös linkitetty tiedosto,
josta siis haetaan muut ominaisuudet (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
):
<DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Otsikko</TITLE>
<LINK rel="stylesheet" type="text/css"
href="tyyliarkkitiedosto.css">
<STYLE type="text/css">
<!-- /* määrittelyt ovat
HTML-kommenttien sisällä, jotta vanhat selaimet
ohittaisivat ne */
body {background: yellow url(uusikuva.gif) no-repeat center;}
/* selostan toisessa yhteydessä tämän
merkityksen */
-->
</STYLE>
</HEAD>
<BODY>
...
Valitettavasti Netscape 4.0x selaimilla on
kuitenkin niin suuria toimintavaikeuksia, että jos haluaa
optimoida em. selainten maksimaalisen tukemisen ja
määrittelyjen helppouden, sinun tulee joiltakin osin
ohittaa selain. Selaimen ohittaminen onnistuu helposti
käyttämällä ns. tuontisääntöä
(@import), sillä kyseiset selaimet eivät
ymmärrä sitä. Samalla näet myös, miten
tuota sääntöä käytetään.
Ensimmäisessä esimerkissä sääntö
liitetään STYLE-elementtiin (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
):
<LINK rel="stylesheet" type="text/css"
href="NS_4_0x.css">
<STYLE type="text/css">
<!--
@import url(tyyliarkkitiedosto.css); /* tiedostosta
NS_4_0x.css
määrittelyt, jotka toimivat hyvin NS 4.0x
selaimissa; @import
säännön avulla haetaan
ulkopuolisista tyyliarkkitiedostoista sellaisia asioita, jotka
kaatavat NS 4.0x selaimen; tuontisääntöjä voi
olla useita, mutta kaikkien tulee olla ennen muita
määrittelyjä; huomaa lopussa oleva ;
merkki -
ilman sitä selain ei jatka eteenpäin lukemaan
jäljessä tulevia määrittelyitä;
*/
/* dokumenttikohtaiset määrittelyt
*/
body
{font-family: Verdana, Arial, Helvetica, sans-serif;
font-size:x-small;
padding-top: 10px;
padding-left: 32px;
padding-right: 10px;
padding-bottom: 10px;
margin: 0px;}
h2
{color: #660033;font-family:Verdana, Arial, Helvetica,
sans-serif;} /* muista, että tämä ei kumoa
aiemmin annettuja ominaisuuksia muilta kuin uudelleen
määritellyiltä kohdin */
td
{font-family: Verdana, Arial, Helvetica, sans-serif;
font-size:x-small;}
-->
</STYLE>
Edellinen tapa on tehokkain. Se tarjoaa mahdollisuuden antaa
Netscape 4.0x selaimille aivan omat ominaisuudet, jotka sitten
ohitetaan dokumenttiin upotetun tuontisäännön
avulla. Jollei toisin ole erikseen määritelty
ulkopuolinen tyylimäärittely koskee kaikkia kappaleita,
kun suora määrittely vain yhtä kappaletta (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
).
Toinen tapa ohittaa NS 4.0x ja samalla käyttää on tuontisääntöä, on laittaa se toisen CSS-tiedoston alkuun seuraavan esimerkin tapaan:
/* tyyliarkkitiedosto - tämä on
päätyyliarkkitiedosto; on hyvä tapa laittaa aina
tyyliarkkitiedoston alkuun lyhyt kuvaus tyyliarkkitiedoston
sisällöstä */
@import url(toinen_ulkopuolinen_tyyliarkkitiedosto.css); /*
tuontisääntöjä voi olla useita, mutta ne
kaikki pitää olla tiedoston alussa; muista laittaa ;
merkki! */
body {...} /* muut määrittelyt normaaliin tapaan
*/
Muista, että aina kun käytetään
ns. tuontisääntöä, se tulee sijoittaa ennen
yksittäisiä ominaisuuksien antamisia ja se
käsitellään ensimmäiseksi. Jos
tuontisääntöjä on useita, selain käy ne
järjestyksessään lävitse. Varoitus: MS IE lukee myös väärään
paikkaan sijoitetut tuontisäännöt. Mutta Opera ja
tuleva Netscape eivät niitä lue väärin
sijoitettuna, joten laita sääntö aina oikeaan
paikkaan! Kokeile mallisivua - siinä ei pitäisi
näkyä tyyliarkin tuomia muutoksia! (![[M]](../../Kuvat/buttons/M.gif)
![[S]](../../Kuvat/buttons/S.gif)
).
Käytät sitten minkä
tyylisiä CSS-ominaisuuksia tahansa, luot ominaisuuksista
kuvauksen (declaration). Kuvaus on
kahden kaarisulun eli lohkon (block)
välissä ({}) ilmoitetut ominaisuudet ja
niiden arvot. Voit useissa tapauksissa valita sen,
esitätkö ominaisuudet ja niiden arvot yksitellen vai
kokoatko jotkut pikakirjoitteeksi
(shorthand properties). Yleensä taustan
ominaisuudet esitetään pikakirjoitteina, esim.
seuraavaan tapaan (
],
[![[S]](../../Kuvat/buttons/S.gif)
):
body {background: white
url(./Taulut/kierrevihko.gif) repeat-y 2px
0px;}
Tarkasti ottaen ennen puolipistettä on vain yksi
ominaisuuksien ja niiden arvojen kuvaus. Kuvaus on aina
kuvauslohkon (declaration-block) sisällä.
Edellisessä esimerkissä kuvauslohkon sisällä
oli vain yksi kuvaus. Seuraavassa esimerkissä kuvauslohko
sisältää useita kuvauksia. Laitan seuraavassa
esimerkissä selvyyden vuoksi yksittäiset kuvaukset
allekkain. Yksitellen esitettynä samojen ominaisuuksien
kuvauslohko näyttäisi tältä (en
tässä yhteydessä käy lävitse, mitä
yksittäiset ominaisuudet tarkoittavat; katso myös kaavio kohdasta
kuvauslohko
(![[S]](../../Kuvat/buttons/S.gif)
)):
body
{background-color: white;
background-image: url(./Taulut/kierrevihko.gif);
background-repeat: repeat-y;
background-position: 2px 0px;}
Kaikkia ominaisuuksia ei voi
esittää pikakirjoitteena, mutta jos voi, periaate on
sangen yksinkertainen:
Pikakirjoitteessa ominaisuuden arvot laitetaan
peräkkäin, väliin jätetään
tyhjää (space) ja arvojen
antaminen päätetään
puolipisteellä (;). Myös
aliominaisuudet voidaan toteuttaa pikakirjoitteena, esim.:
body {border-top: 1px #660033 solid;}
/* vertaa sitä seuraavaan kuvauslohkoon */
body {border: 1px #660033 solid;}
Voit tehdä kuvauslohkoja vaikka NotePadilla. Kaikki käytettävissä olevat opastinsovellukset eli velhot ovat puutteellisia, mutta niilläkin saa annettua perusominaisuuksia. Ks. lopuksi liitesivu sovelluksista, joissa käsittelen freeware ja shareware ohjelmia.