3 CSS ja teknisesti laadukas Web-sivu 3 CSS ja CSS ja teknisesti laadukas Web-sivu Johdanto luentokerran aihepiiriin: Nykyaikaisen Web-hypermedian toteuttaminen on HTML-kielen ja CSS-tyylien yhteispeliä CSS-tyylien tuella onnistuu sekä dokumenttien ilmiasun määrittely että dokumenttien taittaminen eli komponettien asetteleminen käytettävyyden ja muiden periaatteiden mukaisesti Nyt tavoitteena on perehtyä CSS-tyylikielen yleisiin ominaisuuksiin ja periaatteisiin, käytännön sovelluksia unohtamatta. CSS-tyylien täysimittainen soveltaminen edellyttää aihepiiriin liittyvän käytönnön osaamisen ohella suunnitelmallista otetta Web-sivujen suunnittelussa ja toteuttamisessa Haasteita riittää vielä perusteiden opettelemisen jälkeenkin: taidokasta HTML-kielen, CSS-tyylien ja kuvien yhdistelemistä voi syystä kutsua web-muotoiluksi (web design) Esimerkkejä taidokkaasta CSS-soveltamisesta: http://www.csszengarden.com/
Johdanto CSS-tyyleihin CSS (Cascading Style Sheets) on dokumenttien ulkoasun määrittelyyn (formatointi) käytettävä tyylikieli. CSS-tyylejä käytetään yleisesti HTML-kielen parina. CSS on ns. koristeleva (dressing-up) tyylikieli: sen avulla määritellään dokumentin ulkoasun, ei muokata dokumentin rakennetta. Tämä asettaa tietyt reunaehdot CSStyylien käytölle: dokumenttien rakenne on suunniteltava huolellisesti etukäteen. CSS on yleinen tyylikieli, jonka käyttö ei rajoitu pelkästään HTML-dokumentteihin: CSS-tyylien avulla voidaan määritellä myös XML-dokumenttien ulkoasu. XML:n yhteydessä käytetään yleensä XSL-tyylikieltä (Extensible Stylesheet Language). Cascading Style Sheets tarkoittaa suomeksi limittyviä tyylitiedostoja. Limitys on CSS-tyylien keskeinen ominaisuus, johon perehdytään myöhemmin. CSS-tyyleistä on olemassa kaksi lopullista versiota, joista tässä keskitytään kielen ensimmäiseen versioon (Cascading Style Sheets, Level 1). Selaimet tukevat CSS1- tyylejä laajasti, kielen uudemman version (CSS2.1) selaintuki on vielä rajallinen. CSS1 esittelee dokumenttien formatoinnin perusominaisuudet, joita CSS2.1 laajentaa: vakiotekstien lisääminen, laskurit, monipuoliset valitsimet, mahdollisuus määritellä miltä dokumentti kuulostaa,...
Demo: Tyylien käytön perusidea HTML:n yhteydessä tyylien käytön perusidea on dokumentin HTML-merkkauksen ja dokumentin ulkoasun erottaminen toisistaan (syy: ylläpito) dokumentin asiasisältö merkataan kuvailevan merkkauksen keinoin (esim. h1, h2, p, address, em, strong, abbr - ei kuitenkaan b, i tai font) ja merkattujen HTML-elementtien ulkoasu kuvataan CSS-sääntöinä (vieläpä siten, että yhtä tyylitiedostoa käytetään monen HTML-dokumentin yhteydessä)
Taustaa: HTML-sivujen taitto selaimessa Selain ei käsittele (X)HTML/XML sivua tekstinä, vaan sen sisäinen esitys sivusta on rakenteinen DOM-puumalli (DOM = Document Object Model) DOM ladotaan näkyväksi sivuksi käymällä sen elementit järjestyksessä läpi ylemmästä solmusta alisolmuihin. Esimerkki: Lähdemerkkaus (HTML) Selaimen tietomalli (DOM) Esittäminen näytöllä <html> <head> <title>esimerkki</title> </head> <body> <h1>esimerkki</h1> <p>mää mukkasin rotvallin reunaan: <em>pipa lens!</em> </p> </body> </html>
CSS-kielioppi Jokainen CSS-sääntö koostuu valitsimesta (selector), ominaisuudesta (property) ja arvosta (value): valitsin {ominaisuus: arvo} Yksi sääntö voi sisältää useita ominaisuus-arvo-pareja: valitsin {ominaisuus: arvo; ominaisuus: arvo;} Valitsimella määritellään ne HTML-elementit, joiden ulkoasuun säännön halutaan vaikuttavan. Ominaisuus-arvo-pareilla määritellään haluttu ulkoasu. Esimerkki: "käytä kaikissa p-elementeissä Verdana-kirjasinta": p {font-family: Verdana;} Esimerkki: "käytä kaikissa em-elementeissä harmaata taustaväriä, lihavoi kirjasin": em {background-color: silver; font-weight: bold;} CSS-tyylien keskeinen ominaisuus on periytyminen: elementille määritellyt ominaisuudet vaikuttavat myös elementin lapsielementteihin.
Tyylien liittäminen HTML-dokumenttiin CSS-määritysten liittäminen HTML-dokumenttiin voidaan tehdä kolmella eri tavalla: 1. Viittaaminen ulkoiseen tyylitiedostoon head-elementtiin sijoitettavan link-elementillä: <link rel="stylesheet" type="text/css" href="tyyli.css"> 2. Dokumenttikohtaiset tyylimääritykset kirjoitetaan head-elementtiin sijoitettavan styleelementin sisään: <style type="text/css"> h1 { font-size: 120%;} </style> 3. Elementtikohtaiset tyylimääritykset kirjoitetaan style-attribuutin arvoksi: <p style="border-width: 1px; border: solid;">olen laatikko!</p> Ulkoisen tyylitiedoston käyttö on ehdottomasti suositeltavin toimintatapa. Dokumenttikohtaiset tyylimääritykset vaikeuttavat ulkoasun ylläpitoa ja elementtikohtaiset tyylimääritykset vievät pohjan dokumenttien sisällön ja ulkoasun erottamiselta.
Lyhyt esimerkki tyylien käytöstä Seuraava dokumentti koostuu kolmesta tiedostosta: esimerkki.html (sisältö & rakenne), lamppu.gif (dokumenttiin upotettu kuva) ja esimerkki.css (ulkoasun määrittely): tiedosto esimerkki.css body { background: white; } h1 { color: black; font-size: 20pt; font-weight: bold; } p { color: blue; font-size: 12pt; } tiedosto esimerkki.html: <html> <head><title>hei maailma!</title> <link rel="stylesheet" type="text/css" href="esimerkki.css"/> </head> <body> <h1>esimerkki</h1> <p><img src="lamppu.gif" alt="syttynyt lamppu">dokumenttien kirjoittaminen on oikeastaan aika helppoa.</p> </body> </html>
CSS-tyylien kiinnittäminen dokumenttiin Helpoin tapa: valitsimena elementin nimi.valitaan esimerkiksi sivun kaikki p- elementit: p {color: blue;} Kontekstivalitsin määrittelee tarkemman elementtirakenteen. Seuraavassa valituksi tulevat taulukon (table) otsikkorivin (thead tr) solut (td): table thead tr td {background-color: orange;} HTML-elementtejä voidaan luokitella class-attribuutin avulla: <p>tekstiä, jossa <em class="huomautus">keskellä huomautus</em>.</p> Luokkavalitsin (elementin nimi + piste + luokan nimi) viittaa luokitteluun. Tyylimääritystä käytetään em-elementteihin, joiden class-atribuutin arvo on "huomautus": em.huomautus {font-weight: bold;}
HTML-elementeille voidaan antaa yksilöllinen tunniste id-attribuutilla: 3 CSS ja teknisesti laadukas Web-sivu <div id="paivitystiedot">päivitetty 22. syyskuuta 2009.</div> Elementtikohtainen, yksilöivä(!) tunniste määritellään id-valitsimella. Seuraava sääntö kohdistuu ainoastaan div-elementtiin, jonka id-attribuutin arvo on paivitystiedot : div#paivitystiedot { background-color: lime;} Valitsimia voidaan ryhmitellä kirjoitustyö vähentämiseksi ja tyylitiedoston selkeyttämiseksi. Tämä sääntö vaikuttaa dokumentin kaikkiin h1-, h2- ja h3- elementteihin: h1, h2, h3 { text-align: right;} Pseudoluokkien avulla voidaan ottaa kantaa esimerkiksi linkin (a-elementti) tilaan: a:link {color: blue;} /* linkissä ei ole vierailtu */ a:visited {color: purple;} /* linkissä on vierailtu */ a:hover {background-color: lime;} /* käyttäjä osoittaa linkkiä hiirellä (hover=css2 omin.)*/ a:active {text-decoration: blink;} /*linkki on aktiivinen */ Pseudoelementtien avulla voidaan ottaa kantaa rakenteisiin, joita ei ole erikseen merkattu dokumentteihin. Sääntö suurentaa jokaisen p-elementin ensimmäisen kirjaimen:
p:first-letter {font-size: bigger;} Seuraava sääntö muuttaa jokaisen p-elementin ensimmäisen rivin värin vihreäksi. Huomaa, että "ensimmäinen rivi" riippuu selaimen leveydestä ja kirjasimen koosta, joten sen merkkaaminen dokumenttiin (elementtien avulla) on mahdotonta: p:first-line {color: green; } Valitsimia on mahdollista myös yhdistellä. Sääntö kohdistuu kaikkiin niihin a- elementteihin, jotka ovat sellaisten div-elementtien sisällä, joiden class-attribuutin arvo on navigaatio: div.navigaatio a {text-decoration: none;} Esimerkki selventää: <div class="navigaatio"> <a href="z-salamapartio.html">edellinen: Z-Salamapartio</a> <a href="muksuluuri.html">seuraava: Muksuluuri</a> </div>
CSS1-ominaisuudet CSS1 luokittelee elementeille asetettavat ominaisuudet viiteen luokkaan: 1. Kirjasinominaisuudet (Font properties) 2. Väri- ja taustaominaisuudet (Color and background properties) 3. Tekstiominaisuudet (Text properties) 4. Suorakaideominaisuudet (Box properties) 5. Luokkaominaisuudet (Classification properties) Ominaisuudet voivat saada seuraavia arvoja: 1. Pituusarvoja (Lenght units) 2. Prosenttiarvoja (Percentage units) 3. Väriarvoja (Color units) 4. Lokaattoreita (URL) 5. Avainsanoja (Keyword)
Arvot Käydään aluksi läpi ominaisuuksille annettavissa olevat yleiset arvovaihtoehdot ja jatketaan sitten yksittäisten ominaisuuksien läpikäynnillä. Pituusarvot (<width>) Pituusarvon yksiköt on jaettu suhteellisiin ja absoluuttisiin. Pituusarvoon viitataan tässä materiaalissa tunnisteella <length>. Suhteellisia yksiköitä ovat elementin kirjasimen korkeus (em), x-kirjaimen korkeus (ex) ja pikseli (px). Esimerkkejä: h1 {margin: 0.5em;} /* ems, the height of the element's font */ h1 {margin: 1ex;} /* x-height, ~the height of the letter 'x' */ p {font-size: 12px;} /* pixels, relative to canvas */ Yksiköt em ja ex viittaavat sen elementin kirjasimen kokoon, jota sääntö koskee. Poikkeuksena on kirjasimen koko ('font-size'), jossa yksiköt viittaavat elementin vanhemman kirjasimen kokoon. Absoluuttisia yksiköitä ovat tuuma (in), senttimetri (cm), millimetri (mm), piste (pt) ja pica (pc). Yksi piste vastaa 1/72 tuumaa ja yksi pika 12 pistettä.
Esimerkkejä: h1 { margin: 0.5in; } /* inches, 1in = 2.54cm */ h2 { line-height: 3cm; } /* centimeters */ h3 { word-spacing: 4mm; } /* millimeters */ h4 { font-size: 12pt} /* points, 1pt = 1/72 in */ h4 { font-size: 1pc } /* picas, 1pc = 12pt */ Prosenttiarvot (<percentage>) Prosenttiarvo viittaa pääsääntöisesti sen elementin kirjasimen kokoon, jota sääntö koskee. p { line-height: 120%; } /* 120% of the element's 'font-size' */ Elementin jälkejäiset perivät prosenttiarvon perusteella lasketun arvon, eivät koskaan prosenttiarvoa. Väriarvot (<color>) Väriarvo voi olla joko avainsana tai RGB (Red Green Blue)-arvo. Väriarvoksi voidaan määritellä jokin avainsanoista: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white tai yellow.
RGB-arvo voidaan antaa joko heksadesimaalimuodossa, kolmena kokonaislukuna (0-255) tai kolmena prosenttiarvona. Heksadesimaalimuotoinen RGB-arvon esittämistapa on yleisesti käytössä myös HTMLkielessä. Heksadesimaalimuotoinen väriarvo alkaa aina #-merkillä: p {color: #FF0000;} /* #rrggbb */ RGB-arvon kokonaislukuesitys on seuraava: rgb(punainen, vihreä, sininen), jossa jokainen väri voi saada arvon välillä 0-255: p {color: rgb(255,0,0);} /* rgb(rrr,ggg,bbb), 0-255 */ RGB-arvo prosenttiesitys on seuraava: rgb(punainen, vihreä, sininen), jossa jokainen väri voi saada arvon väliltä 0.0%-100.0%: p {color: rgb(50%,0%,0%);} /* rgb(rrr%,ggg%,bbb%), 0.0%-100.0% */ Lokaattorit (<url>) URL-osoitteeseen viitataan seuraavalla merkinnällä: body {background-image: url(http://www.osoite.fi/kuva.gif);} URL-osoite voi olla myös suhteellinen. Suhteelliset osoitteet käsitellään suhteessa tyylitiedostoon (eikä siis siihen HTML-dokumenttiin, johon tyylitiedosto on linkitetty).
body {background-image: url(kuva.gif);} Avainsanat Avainsanat ovat tapauskohtaisia: kirjasin kursivoidaan avainsanalla 'italic', musta väri valitaan avainsanalla 'black' ja niin edelleen: p { } font-style: normal; color: black; background-color: white; Tiettyyn ominaisuuteen liittyvät avainsanat käydää kattavasti läpi aina ominaisuuden esittelyn yhteydessä. Sitten ominaisuuksien kimppuun.
Kirjasinominaisuudet Kirjasin Ominaisuus: font-family Arvo: [[<family-name> <generic-family>],]* [<family-name> <generic-family>] p {font-family: "Times New Roman", Times, serif;} Kirjasimelle voidaan normaalista poiketen antaa useita arvoja, koska eri koneiden kirjasinvalikoimat eroavat toisistaan. Kirjasimia etsitään koneesta listan määrittelemässä järjestyksessä. Viimeisenä vaihtoehto kannattaa antaa yleinen, käyttöjärjestelmästä riippumaton kirjasimen nimi (generic family): 'serif' (esim. Times), sans-sefif' (esim. Helvetica), cursive' (esim. Zaph-chancery), 'fantasy' (esim. Western) tai 'monospace' (esim. Courier).
Kirjasimen tyyli Ominaisuus: font-style Arvo: normal italic oblique em {font-style: normal;} Kirjasimen tyyliksi voidaan valita normaali ('normal') tai kursivoitu ('italic' tai 'oblique'). Kursivointi kannattaa tehdä selainten paremmin tukeman 'italic'-arvon avulla. Kirjasimen tyylin normal-arvo on tarpeen silloin, kun selain esittää oletuksena HTML-elementin kursivoituna (esim. em-elementti). Kirjasimen koko Ominaisuus: font-size Arvo: <absolute-size> <relative-size> <length> <percentage> Kirjasimen koko voidaan antaa neljän eri arvoalueen avulla: absoluuttisena arvona (<absolute-size>), suhteellisena arvona (<relative-size>), pituusarvona (<length>) tai prosenttiarvona (<percentage>). Absoluuttiset arvot: xx-small x-small small medium large x-large xx-large strong {font-size: large;}
Suhteelliset arvot: larger smaller blockquote {font-size: larger;} Suhteellinen arvo muuttaa kirjasimen kokoa yhden absoluuttisen arvon verran suuremmaksi ( larger ) tai pienemmäksi ( smaller ). Esimerkiksi larger muuttaa (vanhemmalta perityn) arvon x-small arvoksi small. Pituusarvot: Pituusarvo voi olla suhteellinen (em, ex tai px) tai absoluuttinen (in, cm, mm, pt tai pc). Suhteellisia arvot perustuvat normaalista poiketen elementin vanhemman kokoon. Prosenttiarvot: Prosenttiarvo kertoo elementin koon suhteessa vanhemmalta perittyyn kokoon.
Kirjasimen vahvennus Ominaisuus: font-weight Arvo: normal bold bolder lighter 100 200 300 400 500 600 700 800 900 em {font-style: normal; font-weight: bold;} strong {font-weight: bolder;} Normaali lihavoitu kirjasin (vrt. b-elementti) saadaan arvolla 'bold'. Kirjasimen vahvennus voidaan määritellä myös suhteellisesti: perittyä vahvennusta voidaan lisätä ('bolder') tai vähentää ('lighter'). Kolmas vaihtoehto on kirjasimen vahvennuksen määrittely numeroarvolla: arvo '400' vastaa arvoa 'normal' ja arvo '700' vastaa arvoa 'bold'. Kirjasimen merkkikoko Ominaisuus: font-variant Arvo: normal small-caps h3 {font-variant: small-caps;} Merkkikoon arvolla 'small-caps' isot kirjaimet kirjoitetaan normaalisti. Pienet kirjaimet kirjoitetaan ison kirjaimen näköisillä kirjaimilla, joiden koko on isoa kirjainta pienempi.
Väri- ja taustaominaisuudet Väri Ominaisuus: color Arvo: <color> p {color: red;} p {rgb(255,0,0);} Ominaisuuden 'color' avulla määritellään elementin (piirto)väri. Yleisin käyttötapaus on tekstin värin määritteleminen. Taustaväri Ominaisuus: background-color Arvo: <color> transparent blockquote {color: #CCCCCC;} Taustaväri voidaan määritellä esimerkiksi tekstikappaleelle, taulukon solulle tai napille. Dokumentin taustaväri määritellään body-elementin avulla (periytyminen): body {background-color: lime;}
Taustakuva Ominaisuus: background-image Arvo: <url> none body {background-image: url(tomaatti.gif);} Taustakuva voidaan määritellä koko dokumentin sijaan esimerkiksi pelkästään taulukoille. Taustakuvan toisto Ominaisuus: background-repeat Arvo: repeat repeat-x repeat-y no-repeat body { background-image: url(tomaatti.gif); background-repeat: no-repeat;} Taustakuva voidaan määritellä toistettavaksi ainoastaan vaakasuunnassa ('repeat-x'), ainoastaan pystysuunnassa ('repeat-y') tai molemmissa ('repeat'). Arvolla 'no-repeat' taustakuvaa ei toisteta.
Taustakuvan kiinnitys Ominaisuus: background-attachment Arvo: scroll fixed body { background-image: url(tomaatti.gif); background-attachment: fixed;} Arvo 'fixed' kiinnittää taustakuvan siten, että se pysyy paikallaan sivua vieritettäessä. Taustakuvan asemointi Ominaisuus: background-position Arvo: [<percentage> <length>]{1,2} [top center bottom] [left center right] Taustakuvan paikka määritellään arvoparina. Arvopari voi koostua prosentti- ja pituusarvoista. Arvoparin ensimmäinen arvo kertoo kuvan paikan pystysuunnassa ja toinen arvo paikan vaakasuunnassa. Paikka voidaan määritellä myös avainsanojen avulla: vaakasuunnassa left, center tai right ja pystysuunnassa top, center tai bottom.
Seuraava sääntö sijoittaa taustakuvan keskelle taulukon solua: td { background-image: url(tomaatti.gif); background-position: 50% 50%;} 3 CSS ja teknisesti laadukas Web-sivu Taustakuvan paikka määritellään oletuksen suhteessa elementin kokoon. Selaimen ruudun keskellä pysyvä taustakuva saadaan, kun kiinnitetään taustakuva 'backgroundattachment'-ominaisuuden arvolla fixed. Esimerkki selventää: body { background-image: url(tomaatti.gif); background-attachment: fixed; background-position: center center;} Taustakuvan paikka kannattaa määritellä joko prosenttiarvoilla tai avainsanojen avulla, jolloin käyttäjän näytön koolla tai tarkkuudella (resoluutio) ei ole merkitystä lopputuloksella.
Tekstiominaisuudet Tekstin koristelu Ominaisuus: text-decoration Arvo: none [ underline overline line-through blink ] a {text-decoration: none;} em {text-decoration: blink;} del {text-decoration: line-through;} Tekstiä voidaan koristella lisäämällä viiva tekstin alapuolelle ('underline') tai yläpuolelle ('overline'). Teksti voidaan myös yliviivata ('line-through') tai asettaa vilkkumaan ('blink'). Selaimen oletuksena käyttämät koristelut (esimerkiksi viiva linkkitekstin alla) voidaan poistaa arvolla 'none'. Tekstin tasaus pystysuunnassa Ominaisuus: vertical-align Arvo: baseline sub super top text-top middle bottom text-bottom <percentage> td {vertical-align: top;}
Pystysuuntaisen tasauksen määrittäminen on tarpeen esimerkiksi taulukon soluissa, joissa oletuksena puoliväliin ( middle ) sijoitettava teksti voidaan tasata joko solun yläreunaan ( top ) tai alareunaan ( bottom ). Tekstin tasaus vaakasuunnassa Ominaisuus: text-align Arvo: left right center justify p {text-align: justify;} h1 {text-align: right;} Teksti voidaan tekstinkäsittelyohjelmien tapaan keskittää ('center') tai tasata vasempaan ('left') tai oikeaan ('right') reunaan. Tekstin tasaaminen molempiin reunoihin onnistuu arvolla 'justify'. Molempiin reunoihin tasausta ei yleensä suositella, koska tekstin lukeminen näytöltä vaikeutuu. Tekstin sisennys Ominaisuus: text-indent Arvo: <length> <percentage> p {text-indent: 1em;} blockquote {text-indent: 10%;} Ominaisuuden 'text-indent' avulla määritellään elementin ensimmäisen tekstirivin sisennys.
Sanojen välistys Ominaisuus: word-spacing Arvo: normal <length> h1 {word-spacing: 1em;} Sanojen väliin jätettävän tyhjän tilan pituuteen vakutetaan word-spacing ominaisuuden avulla. Ominaisuudelle anntettava arvo lisätään oletuksena käytettävään pituuteen. Väliä voidaan lyhentää antamalla ominaisuudelle negatiivinen arvo. Kirjainten välistys Ominaisuus: letter-spacing Arvo: normal <length> blockquote {letter-spacing: 0,1em;} Kirjainten väliin jätettävän tyhjän tilan pituuteen voidaan vaikuttaa letter spacing ominaisuuden avulla. Ominaisuudelle annettava arvo lisätään kirjainten välin oletuspituuteen. Väliä voidaan lyhentää antamalla ominaisuudelle negatiivinen arvo.
Kirjainkoon muokkaus Ominaisuus: text-transform Arvo: capitalize uppercase lowercase none h1 {text-transform: uppercase;} Teksti voidaan määritellä kirjoitettavaksi kokonaan isoilla ( uppercase ) tai kokonaan pienillä ( lowercase ) kirjaimilla. Arvo capitalize muuttaa jokaisen sanan ensimmäisen kirjaimen isoksi. Vanhemmilta peritty arvo voidaan poistaa käytöstä arvolla none, jos kirjainkoko halutaan säilyttää. Rivin korkeus Ominaisuus: line-height Arvo: normal <number> <length> <percentage> blockquote {line-height: 120%;} blockquote {text-indent: 1.2;} blockquote {text-indent: 1.2em;} Rivin korkeus voidaan määritellä kolmella tavalla: numeroarvona, pituusarvona tai prosenttiarvona. Numeroarvona esitetty rivinkorkeus lasketaan kertomalla kirjasimen koko annetulla numerolla. Prosenttiarvo lasketaan myös elementin kirjasimen koon perusteella.
Demo: Taustaa: CSS-formatoinnin suorakaidemalli (engl. Visual formatting model) Taitto tehdään käymällä DOM-puu läpi järjestyksessä, elementti kerrallaan. Jokaiselle elementille varataan näytöltä suorakaiteen muotoinen alue: 1 1 http://www.w3.org/tr/rec-css2/box.html
Suorakaideominaisuudet Marginaali Ominaisuus: margin-top margin-right margin-bottom margin-left margin Arvo: <length> <percentage> auto h1 {margin-top: 2em; margin-bottom: 1em;} Elementin marginaali yläpuolella ('margin-top'), alapuolella ('margin-bottom'), vasemmalla puolella ('margin-left') ja oikealla puolella ('margin-right'). Marginaali voidaan määritellä kerralla elementin jokaiselle sivulle ominaisuuden 'margin' avulla. blockquote {margin: 10%;} Marginaalin prosenttiarvo lasketaan lähimmän elementin lohkotyylisen edeltäjän leveydestä.
Sisällön etäisyys reunasta Ominaisuus: padding-top padding-right padding-bottom padding-left padding Arvo: <length> <percentage> div.paivitystiedot {padding-top: 0.1em; padding-bottom: 0.1em;} Elementin sisällön etäisyys reunasta yläpuolella ('padding-top'), alapuolella ('paddingbottom'), vasemmalla puolella ('padding-left') ja oikealla puolella ('padding-top'). Sisällön etäisyys reunasta voidaan määritellä kerralla elementin jokaiselle sivulle ominaisuuden 'padding' avulla. div.paivitystiedot {padding: 5%;} Etäisyyden prosenttiarvo lasketaan lähimmän elementin lohkotyylisen edeltäjän leveydestä.
Reunaviiva Ominaisuus: border-top border-right border-bottom border-left border Arvo: <border-width> <border-style> <color> h1 {border-bottom: 3px solid black;} Elementin reunaviiva yläpuolella ('border-top'), alapuolella ('border-bottom'), vasemmalla puolella ('border-left') ja oikealla puolella ('border-right'). Reunaviivalle voidaan määritellä leveys (<border-width>), tyyli (<border-style>) ja väri (<color>). Reunaviiva voidaan määritellä kerralla elementin jokaiselle sivulle ominaisuuden 'border' avulla. Reunaviivan leveys: thin medium thick <length>
Reunaviivan tyyli: none dotted dashed solid double groove ridge inset outset Reunaviivan väri: Ks. väriarvot. Elementin leveys ja korkeus Ominaisuus: width height Arvo: <length> <percentage> auto textarea {width: 15em; height: 10em;} Elementille voidaan määritellä leveys ('width') ja korkeus ('height'). 3 CSS ja teknisesti laadukas Web-sivu
Kellutus Ominaisuus: float Arvo: left right none img {float: left;} Elementille voidaan asettaa kellumaan ominaisuuden 'float' avulla. Ominaisuuden avulla voidaan esimerkiksi asettaa kuva kellumaan sivun vasempaan reunaan siten, että teksti rivitetään kuvan oikealle puolelle. Kellutus on keskeinen keino dokumentin taiton toteutuksessa. Kellutus elementin vierellä Ominaisuus: clear Arvo: none left right both h1 {clear: both;} Ominaisuuden 'clear' avulla lementille voidaan määritellä ne sivut, joilla sallitaan elementtien kellutus.
Luokkaominaisuudet Listan tyyli Ominaisuus: list-style Arvo: <list-type> <list-image> <list-position> ul {list-style: upper-roman;} ul {list-style: url(bullet.gif);} Ominaisuuden 'list-style' avulla muokataan listan tyyppiä (<list-type>), lista-alkion edessä olevaa kuvaa (<list-image>) ja lista-alkion edessä olevan symbolin sijaintia (<listposition>). Listan tyyppi: disc circle square decimal lower-roman upper-roman lower-alpha upper-alpha none Lista-alkion kuva: <url> none Lista-alkion symbolin asemointi: inside outside
Elementin esitystapa Ominaisuus: display Arvo: block inline list-item none input {display: block;} Esitystapa vaikuttaa elementin esittämiseen näytöllä: lohkotyylinen ('block') elementti aiheuttaa rivinvaihdon elementin alkuun ja loppuun, tekstityylinen ('inline') elementti rivittyy selaimen leveyden mukaan. Listatyylinen elementti ('list-item') on lohkotyylisen elementin erikoistapaus. Elementti piilotetaan 'display'-ominaisuuden arvolla 'none'. Tyhjämerkkien tulkinta Ominaisuus: white-space Arvo: normal pre nowrap pre {white-space: pre;} Elementin sisällä olevilla tyhjämerkeillä (välilyönnit, rivinvaihdot, tabulaattorit) voidaan joko sieventää yhdeksi välilyönniksi ('normal') tai näyttää ruudulla ('pre'). Arvo 'nowrap' määrittelee, että rivi katkaistaan ainoastaan br-elementin kohdalta.
CSS-tyylien hyötyjä Sisällön ja ulkoasun erottaminen: CSS mahdollistaa (osittain) HTML-dokumentin sisällön ja ulkoasun erottamisen toisistaan. Ylläpidon tehostaminen ja selkeyttäminen: ulkoasun muokkaaminen tehdään (yhtä!) tyylitiedostoa editoimalla ja muutokset sisältöön tehdään HTML-dokumentteihin. Yhdenmukaisuus: CSS-tyylien käyttö onnistuu ainoastaan, jos kaikki HTMLdokumentit merkataan samalla tavalla dokumenttien rakenteen yhdenmukaisuus. Yhdenmukainen ulkoasu johtuu siitä, että tyylimääritykset ovat yhdessä tiedostossa. Vahvat formatointiominaisuudet: CSS-tyylien formatointiominaisuudet ovat HTMLkielen tarjoamiin mahdollisuuksiin verrattuna huomattavasti monipuolisemmat. Dokumenttien rakenteen yksinkertaistaminen: HTML-dokumenttien rakenne on yksinkertaisempi, koska merkkaus sisältää ainoastaan sisällön merkityksen kuvailuun liittyvää merkkausta. Myös tiedostokoko pienenee. Saavutettavuus: sisällön esittäminen eri kohderyhmille (näkövammaiset, mobiililaitteiden käyttäjät) on (osin) mahdollista huomioida pelkästään eri tyylitiedostoilla. Dokumentin yksinkertainen rakenne auttaa lukulaitteidenkäyttäjiä.
CSS-tyylien käyttö: suunnittelua ja järjestelmällisyyttä CSS-tyylien tarkoituksenmukainen käyttö edellyttää suunnitelmallista toimintaa: 1. Sisällön käsitteellinen jäsentäminen: Yleisen käsitemallin luominen sisällöstä. Käsitemallin suunnittelu edellyttää sisällön asiantuntemusta. 2. HTML-merkkauksen suunnittelu: Käsitemallin perusteella tehdään yksityiskohtainen suunnitelma. Suunnitelmassa määritellään ne elementit ja elementtirakenteet, joilla sisältö merkataan käsitemallin mukaisesti. 3. Sisällön merkkaaminen: Sisältö merkataan HTML-dokumenteiksi suunnitelman perusteella. Dokumentin yleinen rakenne voidaan sijoittaa ns. sivupohjaan, joka kopioidaan jokaisen tuotettavan dokumentin pohjaksi. 4. Tyylien kiinnittäminen: Tyylimäärityksen sijoitetaan erilliseen tyylitiedostoon, johon jokainen HTML-dokumentti viittaa. Teknisesti CSS-tyylien käyttäminen ei edellytä mitää erityistä: tyylien editointi onnistuu HTML-merkkauksen tapaan tavallisella tekstieditorilla. CSS-tyylikielen kielioppi on yksinkertainen, joten periaatteiden opettelun jälkeen käyttäminen on helppoa. Hyödyntämistä helpottavat verkosta löytyvät oppaat.
Lopuksi CSS-tyylien ensimmäisen version tarjoamat vaihtoehdot HTML-dokumentin ulkoasun muokkaamiseen ovat monipuoliset. Mahdollisuuksia kannattaa kuitenkin hyödyntää maltillisesti: absoluuttisesti määritelty kirjasimen koko saattaa estää kirjasimen suurentamisen: vaikeuksia heikkonäköisille tekstin ja taustavärin kontrastin on oltava riittävä, muuten lukeminen on hankalaa myös taustakuvien kanssa on oltava tarkkana: liian voimakas taustakuva hankaloittaa lukemista kursivoitu teksti on vaikeaa lukea näytöltä, toiset kirjasimet sopivat paremmin näytöltä luettavaksi kuin toiset,... CSS2-tyylien mediavalitsimet mahdollistavat erilaisten tyylitiedostojen toteuttamisen eri päätelaittelle. Tämä mahdollistaa periaatteessa sivuston päätelaitekohtaisen räätälöinnin. Käytännössä paras vaihtoehto on kuitenkin eri versioiden toteuttaminen joko mekaanisesti (käsin) tai jonkin soveltuvan ohjelmointikielen (PHP, Python,...) tai vaikkapa XSL-muunnosten ja XML-kielen keinoin.