Tällä harjoituskerralla suunnitellaan ja toteutetaan minikokoinen sivusto. Samalla syvennetään CSS-taitoja, erityisesti elementtien asettelun suhteen.
Sivuston suunnittelu
Sivuston suunnittelusta - mm. sisältölähtöisyydestä ja erilsista sivuston rakenteista - puhuttiin tarkemmin kolmennaella ja neljännellä luennolla. Aiheesta on löytyy myös ohjeita verkkomateriaaleista.
Nyt harjoitellaan kuitenkin lähinnä sivuston teknistä toteutusta, eli
- sivun sisältökenttien merkkausta XHTML:lla,
- niiden asettelua CSS:lla ja
- näin tehdyn sivupohjan kopioimista minikoisen sivuston toteuttamiseksi.
Tässä harjoituksessa sivujen sisältö voi olla vaikka puhdasta lorem ipsumia. Oikean sivuston (kuten oman lopputyön) suunnittelussa on kuitenkin tärkeää lähteä liikkelle sisällöstä: Mitä tietoa sivuille halutaan ja miten se on fiksuinta jakaa eri sivuille?
Sivupohjan asettelu
Webbisivustoissa yksittäiset sivut koostuvat tyypillisesti useista sisältökentistä, joista useimmat toistuvat eri sivuilla enimmäkseen muuttumattomina (esim. ylä- ja alatunniste, navigaatio jne.). Eri sivuilla muuttuu ainoastaan sivukohtainen sisältöosio.
Jotain pieniä muutoksia voi toki "ympäröivissä" rakenteissakin tapahtua (esim. navigaation alavalikot voivat vaihdealla eri sivuilla), mutta tässä harjoituksessa kannattaa yksikertaisuuden vuoksi pitää ne täysin staattisina.
Tee muutamasta sivusta koostuva sivusto käyttämällä sivupohjaa, johon olet valmiiksi merkannut eri sivuilla toistuvat sisältökentät:
- Mieti aluksi, mitkä sisällöt toistuvat kaikilla sivuston sivuilla, luo tämän pohjalta yksinkertainen XHTML-sivupohja. Erota sivupohjasta eri sisältökentät div-elementeillä.
- Voit muotoilla sivun ulkoasua käyttämällä ulkoista tyylitiedostoa. Tee tyyleillä myös kaikki sisältökenttien asemoinnit.
- Huomaa, että navigaatiota varten joudut jo sivupohjaa tehdessäsi miettimään, monestako (pää)sivusta sivustosi koostuu - ja millä nimellä tiedostot tallennetaan.
- Saatuasi sivupohjan rakenteen valmiiksi ja ulkoasun suunnilleen mieleiseksi, voit voit käyttää XHTML-koodia pohjana sivutson jokaiselle yksittäiselle sivulle muuttaen vain niiden sisältöosion sivulle sopivaksi.
Mistä liikkeelle?
Sivupohjan merkkaus XHTML:lla
Jos et ole vielä käyttänyt div-elementtiä elementtien jaotteluun, kannattaa lähteä liikkeelle HTML Dogin span ja div -ohjeista.
Sivupohjan koodi voi siis perusrakenteeltaan näyttää esim. tältä:
<div id="ylatunniste"> ... muuttumaton ylätunniste ... </div>
<div id="navigaatio"> ... linkit sivuston sivuille ... </div>
<div id="sisalto"> ... sivukohtaisesti muuttuva sisältö ... </div>
Sivupohja voi näidern lisäksi sisältää vaikka mitä muita sisältökenttiä.
Asettelu CSS:lla
Sivujen sisältökenttien asetteluun CSS:lla löytyy ohjeita ja linkkejä kurssimateriaaleista kohdasta Elementtien asettelu CSS:lla. CSS-asettelu ei ole niitä maailman helpoimpia asioita, mutta sivulta löytyy myös valmiita asettelupohjia ja työkaluja asettelun tekemiseen.
Weblogien sivupohjat
Huomaa myös saman toimintaperiaatteen toistuminen weblogeissa: eri sivuilla ainoastaan sivun sisältöosio muuttuu sivuplakkien ja ylä- ja alatunnisteen pysyessä samanlaisina sivulta toiselle.
Lokarilla tehdyn sivuston sivupohjan sisältöä voit muokata navigaatiota, linkkejä, ylä- ja alatunnistetta muuttamalla, sivupohjan asettelua taas ulkoasutyyleistä.
Kommentit
Pieni vinkki navigaatiolistojen muotoilusta:
Navigaatiolistat on loogisinta merkata XHTML:ssa listoiksi - sillä listojahan ne ovat. Listoja voi myös CSS:lla muotoilla monipuolisesti. Ks. esim. ALA:n artikkelin Taming Lists (http://www.alistapart.com/articles/taminglists/), jossa esitellään kikka listojen asetteluun vaikka vierekkäin.
Yksi tyypillinen navigaatiolistoille haluttava muutos on poistaa listasta listakohtien pallukat ja sisennys. Se onnistuu CSS:lla näppärästi antamalla navigaatiolistalle tällaiset määreet:
Ensimmääinen rivi poistaa pallukat, kaksi muuta määrettä poistavat sisennyksen: toiset selaimet käyttävät sisentämiseen oletusarvoisesti marginaalia, toiset padding-määrettä, siksi molemmat pitää nollata.
Kommentoi
Erota kappaleet kahdella rivinvaihdolla. Ei HTML-merkkausta.