Cascading Style Sheets (CSS) -perusteet - Demo 2
- Mallivideot
- Alkuvalmistelut
- Navigointipalkkien rakenne
- Ulkoasun määrittäminen
- Navigoinnin ulkoasu
- Linkkien muotoilu
- Kuvat
- Testaus
- Lisätehtäviä
Mallivideot
- navigointi_rakenne.wmv 11.7M
- ulkoasu.wmv 5.4M
- navigointi_ulkoasu.wmv 6.7M
- linkkien_muotoilu.wmv 3.9M
- kuvat.wmv 4.9M
- taulukon_muotoilu.wmv 4.8M
Ongelmia videon katselussa?
Alkuvalmistelut
Näissä demoissa opetellaan perusteet WWW-sivun ulkoasun tekemisestä CSS-kielen avulla. Jatketaan edelliskerran tehtävistä ja tehdään Nanonanon kotisivuille siisti ulkoasu. Jos edelliset demot jäivät kesken, niin tee ne ensin valmiiksi. Voit jatkaa näitä demoja myös mallivastauksesta.
ColorZilla
Asenna Firefoxiin ColorZilla-laajennos, jos sitä ei sinulla vielä ole.
- Mene ColorZilla-laajennoksen sivuille.
- Valitse sivulta Add to Firefox, jonka jälkeen valitse Install Now asennusikkunasta.
- Käynnistä Firefox uudelleen.
Nyt ohjelmaikkunan vasemmassa alakulmassa pitäisi näkyä pipetti-ikoni . Työkalun avulla voit valita sopivan värin ruudulta tai paletista.
Navigointipalkkien rakenne
Tarkoituksena on luoda jokaiselle sivulle navigointi. Navigointi koostuu kahdesta osasta. Sivun yläreunaan halutaan palkki, joka kertoo, missä sivu sijaitsee sivuston hierarkiarakenteessa. Kustakin navigointipalkin tekstin osasta tehdään linkki kyseiselle sivulle, paitsi tietenkin viimeisestä, koska se viittaa sivulle, jota parhaillaan selataan.
Murupolku
Muropolkunavigointi kertoo missä hakemistossa sijaitsemme sivustolla. Listan osia napauttamalla pääsee ylemmille tasoille.
- Käynnistä haluamasi editori. Avaa W:-asemalta Nanonano-sivuston etusivu-dokumentti.
- Lisää dokumentin alkuun
(
body
-elementin sisälle)div
-elementti. Anna lohkonclass
-attribuutin arvoksinavbartop
. - Tallenna pieni kuva Nanonanosta W-asemalle samaan hakemistoon etusivun kanssa.
-
Lisää lohkon sisään järjestämätön lista (
ul
) ja lisää ainoaan lista-alkioon (li
) tallentamasi kuva.
Päänavigointi
Lisäksi sivun toiseen laitaan halutaan yleisnavigointi, josta löytyy sivuston pääkohdat. Kustakin listan kohdasta tehdään linkki kyseiselle sivulle. Navigointipalkkien muotoilu tehdään myöhemmin tässä demossa. Tässä vaiheessa keskitytään määrittämään palkkien sisältö ja rakenne.
- Tee ensimmäisen div-elementin jälkeen toinen div-lohko. Sijoita
tämän lohkon
class
-attribuutin arvoksinavbar
. - Lisää lohkoon järjestämätön lista (
ul
) ja siihen lista-alkioiksi kaikki tarjolla olevat alasivut (Artikkelit, Galleria, Harrastukset, Linkit, Opiskelu, Työt ja Vieraskirja). - Tee kohdista Artikkelit, Linkit ja Opiskelu linkit kyseisiin alihakemistoihin. Katso, että viitteisiin ei jää index.html-sivua, vaan viittaus on hakemistoon.
Navigointipalkkien linkit
Usealla sivulla toistuvan navigoinnin automaattiseen lisäämiseen on tekniikoita, joita käsitellään demossa 7, mutta toistaiseksi liitämme navigointipalkit leikepöydän avulla kopioimalla.
- Kopioi molemmat
div
-lohkot leikepöydälle. - Avaa alihakemistojen index.html-tiedostot muokkaamista varten.
- Liitä
div
-lohkot leikepöydältä kunkin dokumentinbody
-elementin alkuun. - Muokkaa kussakin tiedostossa ensimmäisen
div
-lohkon sisällä olevaa listaa siten, että lisäät listakohdaksi alasivujen otsikot. Esimerkiksi kokkaus-hakemiston dokumenttiin (index.html-tiedostoon) tulisi siis lista:- Nanonanon kuva
- Artikkelit
- Kuinka valmistaa maistuvaa opiskelijaruokaa halvalla?
- Tee listakohdista linkit haluttuihin sivuihin. Käytä suhteellista viittausta.
- Nanonanon kuvasta tehdään linkki etusivulle.
- Viimeisestä kohdasta ei tehdä linkkiä, koska se viittaa samalle sivulle.
body
-elementin alkuun tulisi:<div class="navbartop"> <ul> <li><a href="../../"><img src="../../nanonano.png" alt="Nanonano" /></a></li> <li><a href="../">Artikkelit</a></li> <li>Kuinka valmistaa maistuvaa opiskelijaruokaa halvalla?</li> </ul> </div>
- Päivitä myös toisen
div
-lohkon suhteelliset viittaukset kuntoon eri tiedostoissa. Esimerkiksi ruokaohjeita koskevassa artikkelissa linkkien viitteiden pitäisi olla seuraavanlaisia:<div class="navbar"> <ul> <li><a href="../">Artikkelit</a></li> <li>Galleria</li> <li>Harrastukset</li> <li><a href="../../linkit/">Linkit</a></li> <li><a href="../../opiskelu/">Opiskelu</a></li> <li>Työt</li> <li>Vieraskirja</li> </ul> </div>
- Testaa koko sivuston toimivuus jollakin selaimella. Testaa sivu suoraan W:-asemalta ja osoitteesta http://users.jyu.fi/~tunnus/www/. Miksi linkit toimivat eri tavalla suoraan W:-asemalta käytettyinä kuin users.jyu.fi:n kautta?
Ulkoasun määrittäminen
- Tallenna css-pohja W:\www\-hakemistoon demo2.css-nimellä.
- Muuta jokainen tekemäsi XHTML-dokumentti käyttämään demo2.css-tiedostoa.
Viittausten pitäisi tulla suhteellisina, esim. kokkaus-dokumenttiin:
Katso, ettei demo 1:sen jäljiltä ole viitteitä muihin tyylitiedostoihin. Poista viitteet, jos niitä löytyy.<link href="../../demo2.css" rel="StyleSheet" type="text/css" />
- Avaa sivusi Mozilla Firefoxissa uuteen ikkunaan (File | New Window) ja katso miten WWW-sivujesi ulkoasu muuttui.
- CSS-kielellä voidaan määritellä oletusulkoasu halutuille XHTML-elementeille. Voidaan luoda myös uusia tyylimäärityksiä, joita voi ottaa XHTML-dokumentissa käyttöön halutessaan. Esimerkkejä CSS-määrityksistä löytyy kurssimonisteesta ja luentosivulta.
- Valitse Firefoxin Web Developer -työkalupalkista (asennusohjeet demossa 1) CSS | Edit CSS. Laajenna palkkia hieman niin, että näet paremmin tekstit.
- Napauta Stick-painiketta Edit CSS -palkin ylälaidasta. Painike jää pystyasentoon . Tämä on olennaista, sillä jos menet muulle sivulle selaimessa eikä Stick ole päällä, niin muutokset katoavat! Pidä tehtävät ja muut sivut omassa ikkunassa ja Nanonanon sivut omassa ikkunassa.
- Vaihda sivulla käytetty kirjasin seuraavasti:
- Etsi
body
-lohko. Ohjeet CSS:n merkintätavoista löytyvät luennolta 3. - Kirjoita ominaisuuden
font-family
arvoksi (kaksoispisteen jälkeen):Verdana, Arial, "Trebuchet MS", sans-serif;
Verdana, Arial ja "Trebuchet MS"
ovat käytettävien kirjasimien nimiä. Listasta ensimmäisenä löytyvää kirjasinta käytetään sivulla oletuksena. WWW-sivun tekijä ei voi tietää mitä kirjasimia on asennettuna kunkin selaajan koneelle, joten on pakko antaa useita vaihtoehtoja.sans-serif
tarkoittaa päätteetöntä kirjasinperhettä, josta poimitaan käyttöön jokin kirjasin, jos mitään muuta kirjasinta ei ole käytettävissä.
- Etsi
- Ulkonäkömuutoksien pitäisi näkyä heti dokumentissa, vaikka tyylitiedostoa ei olekaan tallennettu vielä. Voit vaihdella kirjasimien järjestystä ja kokeilla miten sivun ulkoasu muuttuu.
- Määritellään seuraavaksi sivun marginaali. Lisää
body
-elementille määrittelyt:margin-left: 5%; margin-right: 5%; margin-top: 1%; margin-bottom: 1%;
Määritellään siis koko sivun vasemmaksi ja oikeaksi marginaaliksi 5 % sivun koosta. Ylä- ja alamarginaaliksi määritellään 1 % sivun koosta.
- Lisää body-elementtiin myös rivivälimääritys:
line-height: 150%;
Isompi riviväli parantaa luettavuutta.
- Määritellään lisää marginaaleja. Nyt
h1
-,h2
-, jap
-elementeille. Lisää näille kaikille määritykset seuraavaan tapaan:h1 { margin-left: 1em; margin-right: 1em; margin-top: 1.5em; margin-bottom: 1.5em; }
em
-yksikkö suhteuttaa koon määrityksen selaimen oletusfontin kokoon. - Tallenna tyylitiedosto napauttamalla Edit CSS -palkista -painiketta. Valitse nimeksi demo2.css.
Navigoinnin ulkoasu
- Määritellään seuraavaksi sivustolla käytetylle navigointipalkille erottuva ulkoasu.
- Lisää uusi
.navbar
-tyyli ja sille reunus seuraavalla tavalla:border-style: solid; border-width: thin; border-color: black;
Kokeile sivujen toimintaa selaimella.
Pisteellä (.) alkavat tyylit ovat määrityksiä, joita voidaan käyttää minkä elementin yhteydessä tahansa kertomalla class-attribuutilla käytetyn tyylin nimi.
- Navigointipalkille voidaan määritellä myös taustaväri.
Aina taustaväriä (
background-color
) määriteltäessä pitää muistaa määritellä myös tekstin väri (color
). Lisää värimääritykset. Poimi niihin väriarvot mallikuvasta käyttäen ColorZilla-työkalua:- Klikkaa työkalu aktiiviseksi ohjelmaikkunan vasemmasta alakulmasta klikkaamalla työkalun pipetti-ikonia kerran hiiren ykköspainikkeella.
- Hiiren ykköspainikkeella voi valita värin ruudulta.
- Napauttamalla vasemmalla alakulmassa olevaa pipetti-ikonia hiiren kakkospainikkeella saat vaihtoehtoja, joilla saat väriarvon leikepöydälle.
- Värien määritteleminen RGB-koodeina on selitetty esim. RGB Color Values -dokumentissa.
- Navigointipalkille pitää määrittää myös normaalista poikkeava leveys, jotta
se sopii siististi sivun jompaan kumpaan laitaan:
width: 18%;
- Navigointipalkin siirtäminen jompaan kumpaan laitaan onnistuu helposti float-ominaisuudella,
jolla voi kelluttaa elementin oikeaan (right) tai vasempaan (left) laitaan:
float: right;
- Määrittele oma ulkoasu myös sivun yläosassa olevalle leivänmurunavigoinnille, joka käyttää .navbartop-css-tyyliä. Aseta taustaväriksi #D69C52.
-
Määritellään lista näyttämään leivänmurunavigoinnin sisällä muulta kuin perinteiseltä listalta. Lisää
seuraava uusi tyylimäärittely:
.navbartop ul li { display: inline; }
Ylläoleva määrittely on voimassa
.navbartop
-tyylin sisällä olevanul
-listanli
-elementeillä, eli kyseessä on ns. asiayhteyden mukaan määräytyvä tyyli.display
-ominaisuudella muutetaan lista ulkoasultaan tavalliseksi tekstitason (inline)
elementiksi.Tallenna ja kokeile.
- Lisätään linkkien väliin pieni pystysuora viiva. Määritetään
navbartop:ssa olevan linkkilistan rajoja seuraavilla
lisäyksillä edellä määriteltyyn tyyliin (.navbartop ul li):
border-left: 1px solid black; margin-left: 0.5em; padding-left: 0.5em;
- Lisää hieman välistystä (padding) .navbartop-tyylin sisällä olevaan ul:än ylä- ja alapuolelle. Poista samalla marginaali ja padding kokonaan vasemmasta laidasta, niin navigointi siirtyy siististi aivan vasempaan reunaan. Samalla voit lisätä pienen vasemman reunan välistyksen .navbartop-tyyliin, jotta kuva ei ole ihan kiinni lohkon reunassa.
-
Vielä pieneksi kauneusvirheeksi jää vasemmanpuolimmaisen linkin viereen tuleva turha palkki. Se voidaan piilottaa seuraavalla määrityksellä:
.navbartop ul li:first-child { border-left: 0; margin-left: 0; padding-left: 0; }
first-child
-määritys ei välttämättä toimi jokaisessa selaimessa. - Siisti .navbar-tyylin sisällä olevaa linkkilistaa. Siirrä lista aivan laatikon vasempaan reunaan.
- Tallenna CSS-tyylisi demo2.css-tiedostoon.
- Validoi CSS-tiedostosi W3C CSS Validatorilla valitsemalla Web Developer -työkalupalkista Tools | Validate CSS. Korjaa mahdolliset virheet ja varoitukset.
Linkkien muotoilu
- WWW-sivun linkeille on mahdollista määrittää ns. pseudoluokkia, joiden ominaisuudet
tulevat voimaan riippuen siitä, onko linkki aktiivinen, onko hiiri linkin päällä tai onko
linkin viittaamassa osoitteessa jo käyty.
- a määrittää linkeille yhteiset ominaisuudet.
- a:link määrittää käymättömien linkkien ulkoasun.
- a:visited määrittää käytyjen linkkien ulkoasun.
- a:hover määrittää linkin ulkoasun hiiren ollessa linkin päällä.
- a:active määrittää aktiivisen linkin ulkoasun.
Määritä linkeille seuraavat ominaisuudet:
- Käymättömän linkin väriksi sininen.
- Käydyn linkin väriksi purppura.
- hover-efektiin linkin taustaväriksi #D69C52 ja tekstin väri valkoiseksi.
- Poista lisäksi navigointipalkkien sisällä olevista linkeistä
alleviivaus. Muista poistaa alleviivaus sekä käymättömiltä että käydyiltä linkeiltä.
.navbartop a:link, .navbar a:link { text-decoration: none; /* poistaa alleviivauksen */ }
Jos sama tyylimääritys sopii useampaan paikkaan, niin sama määritys voidaan tehdä helposti vaikka useammalle elementille, jos luettelee elementit pilkulla eroteltuina. Sama pätee myös asiayhteyden mukaan määräytyville tyyleille. Yllä oleva esimerkki tarkoittaa, että .navbartop-tyylin sisällä olevien käymättömien linkkien ja .navbar-tyylin sisällä olevien käymättömien linkkien ulkoasua muutetaan.
- Navigointipalkkien linkkien väritys kannattaa myös määrätä hieman leipätekstin linkeistä eroaviksi. Keksi sopivat väriarvot ja laita ne CSS-tiedostoon samoihin luokkiin, joista poistit alleviivauksen navigointipalkkien linkeiltä.
- Tallenna tyylitiedosto.
Kuvat
Muotoillaan myös ylänavigoinnissa oleva Nanonano-kuvalinkki järkevän näköiseksi.
- Kirjoita asiayhteydestä riippuva tyyli, joka poistaa reunukset ylänavigoinnin sisällä olevilta kuvilta.
- Lisää samaan tyyliin määritys, joka keskittää sisällön pystysuunnassa.
-
Tehdään myös leipätekstissä oleville kuville pieniä muutoksia.
Avaa käyttämääsi editoriin Nanonanon IT ja tietoliikenne -artikkeli. Lisää sivulla olevan kuvan sisältävään p-elementin
class
-attribuuttiin arvo kuva.<p class="kuva">
- Lisää css-tiedostoon .kuva-tyyli, jossa leijutat (float) kuvan oikeaan laitaan. Määrittele kuvan ympärille siistit marginaalit.
- Kokeile selaimella miten teksti kiertää kuvaa.
- Voit myös halutessasi liu'uttaa address-lohkon oikeaan laitaan samalla tavalla.
- Tallenna tyylitiedostosi.
Testaus
- Validoi tekemäsi CSS-tiedosto valitsemalla Web Developer -työkalupalkista Tools | Validate CSS. Korjaa mahdolliset virheet CSS-tiedostosta.
- Testaa, että kaikki Nanonanon sivut näyttävät järkeviltä Firefoxilla, Operalla ja Internet Explorerilla. Ei tarvitse hätääntyä, jos sivut eivät näytä täysin samanlaisilta jokaisella selaimella. Täysin samanlaiseen ulkoasuun on turha edes pyrkiä, koska selaimia ja käyttöympäristöjä on liian monenlaisia. Oleellisinta on, että sivusto on jokaisella selaimella järkevästi luettavissa.
Lisätehtäviä
Taulukot
Muotoile Nanonanon Opiskelu-sivulla oleva taulukko siistiksi:
- Lisää koko taulukon ympärille raja.
- Lisää jokaisen solun ympärille raja.
- Muotoile otsikkosolut (th) selkeästi erottumaan varsinaisista soluista (td).
- Keskitä otsikkosolujen sisältö.
- Tasaa muiden solujen sisältö solun vasempaan reunaan.
- Muotoile myös taulukon otsikko (caption) sopivaksi.
- Määritä solujen väliin neljän pikselin alue.
- Voit myös laittaa soluille hiukan välistystä (padding).
Käyttäjien kommentit
Harva ensikertalainen tämän kahdessa tunnissa väkertää :D
Totta. :-) Opiskelijan lähtötasosta riippuu paljon se, tekeekö demot tunnissa vai kolmessa tunnissa. Toki ideakin on, että tehtäviä riittäisi myös muille kuin ensikertalaisille. Esim. lisätehtävät ovat juurikin heitä varten. Tärkeimmät asiat pyritään aina sijoittamaan demon alkuosaan ja ei niin tärkeät loppuun juuri sen vuoksi, että hitaimmatkin ehtisivät tehdä aina vähintäänkin tärkeimmät asiat.
Mallivastauksen linkki vie 1. demoon. mutta toimi kyllä kun korjasi ykköset kakkosiksi.
Mallivastaus on tarkoituskin olla 1. demosta, eli sen pohjalta voi alkaa tehdä 2. demoa (jos 1. demoa ei ole tehnyt).