Tieto- ja viestintätekniikan käyttötaito -> WWW-sivujen tekeminen

© Antti Ekonoja 2012

WWW-sivujen tekeminen

WWW-sivujen tekeminen

Tässä luvussa opit mm. seuraavia asioita:

Oppimistasi asioista on sinulle mm. seuraavanlaista hyötyä:

WWW-julkaisemisen perusteet

Internetin käytetyin osa, World Wide Web (WWW), koostuu WWW-sivuista. WWW-sivuja on yrityksillä, oppilaitoksilla, yksityisillä ihmisillä jne. WWW-sivut eivät ole vaikeita tehdä, helpoimmillaan niitä voi tehdä lähes tekstinkäsittelyn tavoin. Tässä luvussa opiskellaan periaatteet myös "ammattimaisemmasta" WWW-julkaisemisesta, eli WWW-sivujen tekemisestä koodia kirjoittamalla. Rinnalla käydään läpi myös WWW-sivujen tekemistä "tekstinkäsittelyn tapaan". Itse tekemiään WWW-sivuja voi katsoa omalta tietokoneelta. Jotta sivut näkyisivät Internetissä, tarvitaan palvelintilaa WWW-sivuille, jota tarjoavat useat firmat, muun muassa teleoperaattorit. Usein Internet-yhteyden mukana tulee jo valmiiksi tietyn verran tilaa kotisivuille. Nykyään useat firmat (esimerkiksi Nettihotelli.fi) tarjoavat melko edullisesti myös nettihotellipalveluita. Niissä saa usein WWW-sivujen palvelintilan lisäksi sivut omaan domainiin, jolloin sivujen WWW-osoitteeksi voi valita esimerkiksi www.etunimisukunimi.net.

WorldWideWeb

WWW-sivuja voi tuottaa HTML-kielellä (HyperText Markup Language) tai XHTML-kielellä (The Extensible HyperText Markup Language). Molemmat ovat kuvauskieliä WWW-sivujen tuottamiseen. Suurin ero kielissä on se, että XHTML täyttää XML:n (Extensible Markup Language) muotovaatimukset ja on näin ollen hiukan monikäyttöisempi, mutta samalla myös standardeiltaan tiukempi. HTML-kielestä on parhaillaan viimeistelyvaiheessa uusi versio, HTML5. Viralliseksi versioksi se vahvistunee vasta vuonna 2014, mutta jo nyt sitäkin voi siis käyttää. Tällä hetkellä onkin lähinnä makuasia, tekeekö sivut HTML5- vai XHTML-kielellä. Viimeistään HTML5-kielen lopullisen valmistumisen jälkeen viisainta on siirtyä käyttämään sitä. Perusperiaatteet molemmissa kielissä ovat täysin samat, joten kun toisen kielen osaa, on erittäin helppo siirtyä myös toiseen kieleen. Tässä oppimateriaalissa esimerkeissä käytetään XHTML-kieltä ja sen versiota 1.0 Strict.

Useasti WWW-sivuista puhutaan yleisnimellä HTML-sivu riippumatta siitä, onko sivu HTML- vai XHTML-pohjainen. Normaali WWW-selailija ei käytettyä kuvauskieltä pysty edes huomaamaan lukematta sivun koodia. WWW-sivujen tiedostopäätteeksi tulee joko html tai htm. Tiedostonimessä ei saa olla ääkkösiä, erikoismerkkejä tai välilyöntejä, sillä ne voivat aiheuttaa ongelmia sivujen selailussa joillakin selaimilla. Myös kyseisistä tiedostoista puhutaan usein yleisnimellä HTML-tiedosto riippumatta siitä, onko tiedosto HTML- vai XHTML-koodia. WWW-sivuja voidaan katsella millä tahansa Internet-selaimella. Dynaamisten WWW-sivujen (sivujen sisältö voi riippua käyttäjien toiminnoista) luomiseksi tarvitaan HTML:n tai XHTML:n lisäksi WWW-käyttöön soveltuvia ohjelmointikieliä. Näitä kieliä ovat esimerkiksi JavaScript, PHP, ASP ja Perl, mutta niihin ei perehdytä tässä oppimateriaalissa.

Ohjelmana WWW-sivujen tekemisessä voi käyttää periaatteessa mitä tahansa tekstieditoria. Tässä luvussa käytämme ohjelmana ilmaista Amaya-ohjelmaa (versio 11.4.4). Amayan voi ladata itselleen verkosta osoitteesta: http://www.w3.org/Amaya/. Amayan suomennos on paikoin hiukan kömpelö, mutta muuten ohjelma on pätevä WWW-sivujen tuottamiseen. Amayalla voi tuottaa WWW-sivuja joko itse koodia kirjoittamalla tai vaihtoehtoisesti "tekstinkäsittelyn tavoin" valikkokomentojen avulla.

Amayan käytön perusteet

Amayan perustoiminnoissa pätevät samat ohjelmien käytön yleiset ohjeet, joita käytiin läpi luvussa Tietotekniikan perusteet -> Ohjelmat. Myös leikepöytä ja pikanäppäimet toimivat Amayassa muiden Windows-ohjelmien tapaan. Seuraavassa kuvassa esitetään Amayan perusnäkymä.

Amayan perusnäkymä

Kuva: Amaya-ohjelman perusnäkymä jaetussa näkymässä

Amayassa näkymät ovat tärkeässä osassa WWW-sivuja tehdessä. Oletuksena Amayassa näkyy vain normaalinäkymä koko ikkunassa. Normaalinäkymässä sivu näkyy kuten selaimet sen näyttäisivät, joten näkymää voi pitää eräänlaisena esikatseluna. Normaalinäkymässä sivua voi kuitenkin myös muokata lähes tekstinkäsittelyn tavoin. Eri elementtejä ja muotoiluja voi lisätä sivulle tekstinkäsittelyn tapaan valikoista ja työkaluriveiltä.

Tehokkaammin Amayaa voi käyttää jaetun näkymän avulla. Siinä ikkuna jaetaan kahteen näkymään joko vaakasuuntaisesti tai pystysuuntaisesti. Tavasta riippuen joko ylemmässä tai vasemmanpuoleisessa näkymässä näkyy aina normaalinäkymä. Toisen näkymän voi itse valita Näytä-valikon (Views) kautta. Toiseksi näkymäksi on usein parasta valita lähdekoodinäkymä, jolloin näkee kerralla sekä sivun esitystavan selaimessa että sivun lähdekoodin.

Jaetun näkymän saa päälle valitsemalla Näytä-valikosta (Views) joko Split view horizontally tai Split view vertically riippuen siitä, haluaako ikkunan jakaa vaaka- vai pystysuunnassa. Tämän jälkeen toisessa näkymässä pysyy normaalinäkymä ja toiseen tulee joku vaihtoehtoinen näkymä. Esimerkiksi lähdekoodinäkymän vaihtoehtoiseksi näkymäksi saa valinnalla Näytä | Näytä lähdekoodi (Views | Show source).

Kumpaankin näkymään on mahdollista tehdä muokkauksia. Normaalinäkymässä muokkaukset tehdään siis tekstinkäsittelyn tapaan valikkoja ja työkalurivejä hyväksi käyttäen, kun taas lähdekoodinäkymässä kirjoitetaan itse koodia. Näkymät päivittyvät ajan tasalle (eli esimerkiksi normaalinäkymässä tehty muokkaus tulee näkyviin lähdekoodinäkymään ja päinvastoin) aina klikattaessa hiirellä sitä näkymää, jota ei parhaillaan muokata, tai tallennettaessa sivu. Sivu kannattaakin tallentaa usein.

Uuden WWW-sivun luominen Amayassa

Kuva: Uuden WWW-sivun luominen Amayassa

Uuden WWW-sivun luominen tapahtuu Amayassa seuraavasti:

Jatkossa tässä oppimateriaalissa keskitytään ohjeistamaan, miten WWW-sivuja tehdään ja muokataan lähdekoodia kirjoittamalla. Mikään ei kuitenkaan estä tekemästä ja muokkaamasta sivuja myös normaalinäkymässä. Molemmilla tavoilla lopputuloksen pitäisi olla samanlainen. Esimerkiksi toisen tason otsikon (h2-elementti) lisääminen eri tavoilla tapahtuisi seuraavasti (samalla idealla mahdollista lisätä mitä tahansa elementtejä):

WWW-sivun (XHTML) rakenne

Seuraavissa kappaleissa kerrotaan, millainen on XHTML-sivun rakenne lähdekoodipuolella. Esimerkeissä käytetään XHTML 1.0 Strict määrityksiä, jotka ovat tällä hetkellä paljon käytössä olevia XHTML-sivujen määrityksiä. Niiden avulla WWW-sivusta saadaan validi, jolloin Internet-selaimet osaavat näyttää sivun varmasti oikein.

Internet

Elementit:

XHTML-dokumentti koostuu tekstistä, jossa merkitään dokumentin rakenne elementeillä (tageilla), jotka kirjoitetaan < > -merkkien väliin. Esimerkiksi ensimmäisen tason otsikko merkattaisiin seuraavasti: <h1>. Elementeillä on aina aloitus- ja lopetustagi, joiden välissä on varsinainen elementin sisältö. Esimerkiksi edellä mainitun otsikon tapauksessa sisältö esitettäisiin seuraavasti: <h1>Tieto- ja viestintätekniikka<h1>. <h1> on aloitustagi. Vastaavasti </h1> on lopetustagi. Lopetustagissa on aina /-merkki.

Jos elementillä ei ole sisältöä, niin lopetustagi lyhennetään suoraan aloitustagiin. Esimerkiksi pakotetun rivinvaihdon tapauksessa merkittäisiin: <br />. Elementtien välillä ja tekstin keskellä saa olla vapaasti välilyöntejä, sarkaimia ja rivinvaihtoja. Niillä ei ole merkitystä elementin sisällön ulkoasuun. Jos siis esimerkiksi halutaan tekstiin enemmän kuin yksi välilyönti peräkkäin, täytyy ylimääräiset välilyönnit koodata erikoismerkeillä (esimerkiksi välilyönnin koodi on &nbsp;).

Lähdekoodien tarkastelu:

Yksi helppo tapa oppia tekemään WWW-sivuja on tutkia Internetissä jo olevien sivujen lähdekoodeja ja ottaa oppia niistä löytyvistä koodiratkaisuista. Sivun lähdekoodin näkee esimerkiksi Internet Explorer 9 -selaimessa menemällä ensin sivulle, jonka koodia haluaa katsoa ja valitsemalla sen jälkeen Näytä | Lähdekoodi (View | Source).

Attribuutit:

Elementeillä voi olla ominaisuuksia eli attribuutteja, joilla määritellään elementtiin liittyviä ominaisuuksia. Esimerkiksi kuvan tapauksessa kuvan osoite, kuvan vaihtoehtoinen teksti ja kuvan otsikko määritellään img-elementtiin (kuva) tulevilla src (kuvan osoite), alt (kuvan vaihtoehtoinen teksti) ja title (kuvan otsikko) -attribuuteilla seuraavasti: <img src="kuvat/kuva.jpg" alt="Kuva tietokoneesta" title="Tietokone" />. Attribuutin arvo siis syötetään lainausmerkkeihin = -merkin jälkeen. Ominaisuuksien lukumäärää ei ole rajoitettu.

Eräs paljon käytetty attribuutti on style, jolla voidaan antaa XHTML-elementeille tyylimäärityksiä CSS-tyylikielellä (CSS = Cascading Style Sheets). Esimerkiksi tekstikappaleen (p-elementti) väri määrättäisiin punaiseksi ja tekstin tasaus oikeaan reunaan seuraavasti style-attribuutin avulla: <p style="color: red; text-align: right">Esimerkkitekstiä</p>. Esimerkistä huomataan, että style-attribuutille voi antaa kerralla useita eri tyylimäärityksiä. Eri tyylimääritykset tulee erotella toisistaan puolipisteellä.

Pakolliset elementit ja attribuutit:

Jokaisella XHTML-sivulla on pakollisia elementtejä ja attribuutteja. Seuraavassa on kuvattuna kehystettynä tyhjän XHTML-sivun koodi, eli jokaisella XHTML-sivulla pitää olla vähintään nämä rivit. Koodiesimerkin jälkeen selvennetään eri koodirivien merkitystä.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi" lang="fi">
<head>
<title>Tähän sivun otsikko</title>
</head>
<body>
Tähän sivun sisältö
</body>
</html>

Muiden koodirivien merkitys selviää luvussa Tarvittavia XHTML-elementtejä.

Kuten tämän luvun alussa todettiin, XHTML:n erot HTML5-kieleen eivät ole merkittäviä. Vertailun vuoksi tyhjän HTML5-sivun koodi näyttää seuraavanlaiselta:

<!DOCTYPE html>
<html lang="fi">
<head>
<meta charset="iso-8859-1">
<title>Tähän sivun otsikko</title>
</head>
<body>
Tähän sivun sisältö
</body>
</html>

WWW-sivutiedostojen nimeäminen:

Isoa WWW-sivustoa tehtäessä on usein järkevää tehdä oma hakemisto jokaiselle WWW-sivulle ja nimetä kaikki HTML-tiedostot nimelle index.html. Tällöin kyseisiin tiedostoihin voi viitata pelkällä hakemiston nimellä, eikä varsinaista tiedostonimeä tarvitse ollenkaan. Siispä syötettäessä WWW-osoitteeksi hakemiston nimi, osaavat WWW-palvelimet etsiä sieltä oletuksena näytettäväksi index.html-tiedostoa. Esimerkiksi syötettäessä osoite http://appro.mit.jyu.fi/www/, palvelin osaa avata automaattisesti tiedoston index.html kyseisestä www-nimisestä hakemistosta. Kyseistä ominaisuutta voi siis hyödyntää esimerkiksi linkkien (a-elementti) href-attribuuteissa.

Kokonainen WWW-sivusto

Esimerkiksi jonkun firman tai yksityisen henkilön Internet-sivut koostuvat erittäin harvoin vain yhdestä HTML- tai XHTML-sivusta. WWW-sivusto rakennetaankin tekemällä useita HTML- tai XHTML-sivuja, joista viitataan toisiin sivuihin linkeillä (a-elementti). Sivuston pohjalle on järkevää luoda myös hakemistorakenne, eli kaikki sivut eivät sijaitse samassa hakemistossa, vaan loogisesti jaoteltuina eri hakemistoihin. Hakemistorakenteen luonnissa voi käyttää samoja periaatteita kuin Resurssienhallinnassa kansioita luodessa (katso tämän oppimateriaalin luku Resurssienhallinta ja leikepöytä). Myös kuvat kannattaa sijoittaa omaan hakemistoonsa. Eri hakemistoihin ja hakemistoissa sijaitseviin tiedostoihin viittaaminen tapahtuu seuraavalla periaatteella:

Tarvittavia XHTML-elementtejä

Seuraavassa taulukossa kuvataan yleisimmät elementit (tagit), joita tarvitaan XHTML-sivuja luodessa. XHTML-elementin merkitys -sarakkeessa kerrotaan, mihin ja miten kyseistä elementtiä käytetään.

XHTML-elementtiXHTML-elementin merkitys
htmlXHTML-sivun koko sisältö on html-elementin sisällä. XHTML-sivu siis alkaa html-aloitustagilla ja päättyy html-lopetustagiin.
headHead-elementin sisään tulevat XHTML-sivun otsikkotiedot, mm. title.
titleSivun otsikko, joka näkyy Internet-selaimen otsikkorivillä. Sijoitetaan head-elementin sisälle.
bodyKaikki XHTML-sivulla näkyvät elementit tulevat body-elementin sisään. Siispä esimerkiksi kaikki tässä taulukossa seuraavaksi esiteltävät elementit tulevat body-elementin sisään.
h1Ensimmäisen tason otsikko, yleensä vain 1 kpl per sivu, eli käytetään sivun pääotsikkoon
h2Toisen tason otsikko
h3Kolmannen tason otsikko
h4Neljännen tason otsikko
h5Viidennen tason otsikko, ei yleensä kannata käyttää, eli korkeintaan 4 otsikkotasoa pitäisi riittää
h6Kuudennen tason otsikko, ei yleensä kannata käyttää, eli korkeintaan 4 otsikkotasoa pitäisi riittää
pNormaali tekstikappale
ulJärjestämätön lista (merkitty luettelo, listamerkit tulevat automaattisesti)
olJärjestetty lista (numeroitu luettelo, listanumerot tulevat automaattisesti)
liJärjestämättömän tai järjestetyn listan lista-alkio (sijoitetaan ul- tai ol-elementin sisälle)
aLinkki (joko sivun sisälle tai toiseen Internet-osoitteeseen), elementin rakenne on seuraava: <a href="linkin_osoite" title="Linkin otsikko">Linkin teksti</a>. Linkin osoite (href) annetaan joko suhteellisena tai absoluuttisena viittauksena. Osoitteessa ei saa olla ääkkösiä, erikoismerkkejä tai välilyöntejä. Linkin otsikko (title) näkyy, kun Internet-selaimessa viedään hiiren kursori linkin päälle. Linkkielementti tulee olla jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.
imgKuva, elementin rakenne on seuraava: <img src="kuvan_osoite" alt="Kuvan vaihtoehtoinen teksti" title="Kuvan otsikko" />. Kuvan osoite (src) annetaan joko suhteellisena tai absoluuttisena viittauksena. Kuvan vaihtoehtoinen teksti (alt) näytetään selaimessa, jos kuvan lataaminen ei onnistu. Kuvan otsikko (title) näytetään, kun Internet-selaimessa viedään hiiren kursori kuvan päälle. Kuvaelementti tulee olla jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.
tableTaulukko
trTaulukon rivi (sijoitetaan table-elementin sisälle)
thTaulukon otsikkosolu (sijoitetaan tr-elementin sisälle)
tdTaulukon solu (sijoitetaan tr-elementin sisälle)
prePre-elementin sisällä teksti näkyy juuri sellaisena kuin se kirjoitetaan (esimerkiksi välilyönnit ja tabulaattorit näkyvät myös selaimessa ilman niiden koodaamista erikoismerkeillä).
blockquoteLainauselementti, jota käytetään myös sisennysten tekemiseen.
strongKorotuselementti, jolla saadaan lihavointi tekstille. Strong-elementti tulee olla jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.
emKorostuselementti, jolla saadaan kursivointi tekstille. Em-elementti tulee olla jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.
hrVaakatasoinen viiva, syntaksi <hr />
brPakotettu rivinvaihto, syntaksi <br />. Rivinvaihto tulee olla jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.
divYleinen lohkoelementti, jota käytetään esimerkiksi merkkaamaan sivu lohkoihin. Sen avulla saadaan esimerkiksi tehtyä marginaalit kerralla tietylle osalle sivusta, eikä marginaaleja tarvitse laittaa erikseen jokaiselle elementille.
spanSpan-elementtiä käytetään merkkaamaan tietty muotoilu (esimerkiksi tekstin väri) jollekin tekstin osalle esimerkiksi p-elementin sisällä. Span-elementti tulee olla aina jonkun lohkotason elementin (esimerkiksi p, li, td tai div) sisällä.

Ruutukaappausvideo: Erilaiset XHTML-elementit

Muotoilujen tekeminen

Seuraavassa taulukossa kuvataan usein tarvittavien muotoilujen tekeminen XHTML-sivulla. Toteutus-sarakkeessa kerrotaan, miten ja millä elementeillä kyseinen muotoilu toteutetaan. Esimerkki-sarakkeessa on koodiesimerkkejä kyseisen muotoilun tekemisestä.

MuotoiluToteutusEsimerkki
Tasaus

Toteutetaan laittamalla tyylimäärityksiin (style-attribuutti) text-align-ominaisuus, joka voi saada arvoikseen left (vasen tasaus), right (oikea tasaus), center (keskitetty tasaus) tai justify (molempien reunojen tasaus).

Tekstikappaleen tasaaminen oikeaan reunaan:
<p style="text-align: right">Tekstikappale</p>

Marginaalit

Toteutetaan laittamalla tyylimäärityksiin (style-attribuutti) margin-left (vasen marginaali), margin-right (oikea marginaali), margin-top (ylämarginaali) ja margin-bottom (alamarginaali) tarpeen mukaan, eli voidaan määritellä esimerkiksi vain yksi marginaali tai kaikki neljä.

Jos kaikille neljälle määritetään sama marginaali, riittää pelkkä margin-ominaisuus. Marginaalit määritellään pikseleinä (px), em-yksikössä (suhteessa oletusfontin kokoon) tai prosentteina (suhteessa selainikkunan kokoon).

Tekstikappaleelle vasemman ja oikean marginaalin määrittäminen:
<p style="margin-left: 1em; margin-right: 0.5em">Tekstikappale</p>

Tekstikappaleelle kaikkien marginaalin määrittäminen samoiksi kerralla:
<p style="margin: 5px">Tekstikappale</p>

Leveys

Leveys määritellään laittamalla tyylimäärityksiin (style-attribuutti) width-ominaisuus, jonka arvoksi laitetaan leveys prosentteina (suhteessa selainikkunan kokoon), pikseleinä (px) tai em-yksikössä (suhteessa oletusfontin kokoon).

Tekstikappaleen leveyden asettaminen 50 prosenttiin sivun leveydestä:
<p style="width: 50%">Tekstikappale</p>

Taulukolle leveyden määrittäminen:
<table style="width: 20em">Taulukon elementit (tr, td jne.)</table>

Sisäreunus (täyte)

Toteutetaan laittamalla tyylimäärityksiin (style-attribuutti) padding-left (vasen sisäreunus), padding-right (oikea sisäreunus), padding-top (yläreunan sisäreunus) ja padding-bottom (alareunan sisäreunus) tarpeen mukaan, eli voidaan määritellä esimerkiksi vain yksi sisäreunus tai kaikki neljä.

Jos kaikille neljälle määritetään sama sisäreunus, riittää pelkkä padding-attribuutti. Sisäreunukset määritellään pikseleinä (px), em-yksikössä (suhteessa oletusfontin kokoon) tai prosentteina (suhteessa selainikkunan kokoon).

Taulukon soluille sisäreunus voidaan määritellä antamalla table-elementille cellpadding-attribuutti. Tässä tapauksessa edes yksikön antaminen ei ole välttämätöntä. Yksikön puuttuessa arvo tulkitaan pikseleiksi.

Div-elementille yläreunan ja alareunan sisäreunuksien määrittäminen:
<div style="padding-top: 1.5em; padding-bottom: 0.5em">Divin sisältö</div>

Div-elementille sisäreunuksien määrittäminen (kaikille reunoille sama määritys):
<div style="padding: 10px">Divin sisältö</div>

Taulukon soluille sisäreunuksen määrittäminen:
<table cellpadding="3px">Taulukon elementit (tr, td jne.)</table>

Reunaviiva

Toteutetaan laittamalla tyylimäärityksiin (style-attribuutti) border-left (vasen reunaviiva), border-right (oikea reunaviiva), border-top (yläreunan reunaviiva) ja border-bottom (alareunan reunaviiva) tarpeen mukaan, eli voidaan määritellä esimerkiksi vain yksi reunaviiva tai kaikki neljä.

Jos kaikille neljälle määritetään sama reunaviiva, riittää pelkkä border-ominaisuus. Reunaviivan paksuus määritellään pikseleinä (px) tai em-yksikössä (suhteessa oletusfontin kokoon), lisäksi määritellään reunaviivan väri ja tyyli. Tyyliksi normaali valinta on solid, eli yhtenäinen reunaviiva.

Taulukolle reunaviivat voidaan määritellä myös laittamalla table-elementille suoraan border-attribuutti ilman tyyliä ja väriä (pelkkä leveys riittää). Tässä tapauksessa edes yksikön antaminen ei ole välttämätöntä. Yksikön puuttuessa arvo tulkitaan pikseleiksi.

Div-elementille reunaviivojen määrittäminen:
<div style="border-left: 2px solid blue; border-right: 2px solid green; border-top: 3px solid blue; border-bottom: 3px solid green">Divin sisältö</div>

Div-elementille kaikkien reunaviivojen määrittäminen samoiksi kerralla:
<div style="border: 1px solid black>Divin sisältö</div>

Taulukon reunaviivojen määrittäminen:
<table border="5px">Taulukon elementit (tr, td jne.)</table>

Väri

Väri (esimerkiksi tekstin väri) määritellään laittamalla tyylimäärityksiin (style-attribuutti) color-ominaisuus, jonka arvoksi annetaan haluttu väri. Perusvärit voi kirjoittaa suoraan värien englanninkielisinä niminä. Monimutkaisemmat värit annetaan RGB-muodossa.

Tekstikappaleen tekstin värin asettaminen punaiseksi:
<p style="color: red">Tekstikappale</p>

Taustaväri

Taustaväri määritellään laittamalla tyylimäärityksiin (style-attribuutti) background-color-ominaisuus, jonka arvoksi annetaan haluttu taustaväri. Perusvärit voi kirjoittaa suoraan värien englanninkielisinä niminä. Monimutkaisemmat värit annetaan RGB-muodossa.

Taustavärin asettaminen span-elementin avulla tietylle sanalle tekstikappaleen sisällä:
<p>Tekstikappaleen <span style="background-color: yellow">tekstiä</span> ja vielä lisää tekstiä</p>

Taustavärin asettaminen div-elementille:
<div style="background-color: gray">Divin sisältö</div>

Lihavointi

Toteutetaan kehystämällä strong-elementillä se teksti, jolle halutaan lihavointi.

Lihavoinnin asettaminen tietylle sanalle tekstikappaleen sisällä:
<p>Tekstikappaleen <strong>tekstiä</strong> ja vielä lisää tekstiä</p>

Kursivointi

Toteutetaan kehystämällä em-elementillä se teksti, jolle halutaan kursivointi.

Kursivoinnin asettaminen tietylle tekstikappaleelle:
<p><em>Tekstikappaleen tekstiä</em></p>

Fontti (kirjasin)

Fontti (kirjasin) määritellään laittamalla tyylimäärityksiin (style-attribuutti) font-family-ominaisuus, jonka arvoksi annetaan fontin nimi.

Tekstikappaleelle fontin (Verdana) määrittäminen:
<p style="font-family: Verdana">Tekstikappaleen tekstiä</p>

Fonttikoko

Fonttikoko määritellään laittamalla tyylimäärityksiin (style-attribuutti) font-size-ominaisuus, jonka arvoksi annetaan fontin koko em-yksikössä (suhteessa oletusfontin kokoon) tai prosentteina (suhteessa oletusfontin kokoon).

Div-elementille fonttikoon määrittäminen:
<div style="font-size: 1.5em">Divin sisältö</div>

Rivitys (liu'utus)

Usein halutaan saada esimerkiksi kuva tekstikappaleen viereen. Tällöin täytyy käyttää tekstin rivitystä (liu'utusta), joka tehdään asettamalla tyylimäärityksiin (style-attribuutti) float-ominaisuus, joka voi saada arvoksi left (liu'utus vasemmalle) tai right (liu'utus oikealle).

Kuvan asettaminen tekstikappaleen oikealle puolelle:
<div style="float: right"><img src="kuva.jpg" alt="Kuvan nimi" title="Kuvan nimi" /></div> <p>Tekstikappaleen tekstiä, joka tulee kuvan vasemmalle puolelle</p>

Ruutukaappausvideo: WWW-sivun ulkoasun muotoilu

Hyödyllisiä WWW-sivuja:

Koodiesimerkkejä

Koodia

Seuraavassa esitetään esimerkkejä eri WWW-sivuilla usein tarvittavista XHTML-elementeistä (tekstikappaleet, otsikot, taulukot, listat, linkit, kuvat, jne.) ja niiden muotoiluista CSS-tyylimääritysten avulla. Jokaisessa esimerkissä näkyy koodipätkä ja se, miltä kyseinen koodipätkä näyttää Internet-selaimessa. Eri selaimissa voi olla pieniä eroja.

Koodeissa eri osia (elementit, attribuutit, näkyvä teksti jne.) on havainnollistettu eri väreillä. Sinisellä värillä on kuvattu elementit ja attribuutit, vihreällä värillä attribuuttien arvot (esim. tyylimääritykset) ja mustalla värillä sivulle näkyviin tuleva teksti. Näiden koodiesimerkkien perusteella pystyy jo luomaan hyvin monipuolisiakin XHTML-sivuja. Jokaisen koodiesimerkin perässä on linkki, jota klikkaamalla selaimeesi aukeaa uusi sivu tai välilehti, jossa voit editoida kyseistä koodia ja näet heti, miten editointi vaikuttaa sivuun.

Kuva ja teksti rinnakkain sivulla, marginaali sekä kappaleen sisäinen muotoilu:

Kuva ja teksti rinnakkain sivulla, marginaali sekä kappaleen sisäinen muotoilu

Editoi koodiesimerkkiä
(avautuu uuteen ikkunaan/välilehteen)

Taulukko reunaviivoilla ja solujen keskityksellä:

Taulukko reunaviivoilla ja solujen keskityksellä

Editoi koodiesimerkkiä
(avautuu uuteen ikkunaan/välilehteen)

Kaksitasoinen lista ja lihavointi:

Kaksitasoinen lista ja lihavointi

Editoi koodiesimerkkiä
(avautuu uuteen ikkunaan/välilehteen)

Tekstikehys, sisäreunus, leveys sekä kursivointi:

Tekstikehys, sisäreunus, leveys sekä kursivointi

Editoi koodiesimerkkiä
(avautuu uuteen ikkunaan/välilehteen)

Otsikot linkkeinä sekä fonttimuotoilut:

Otsikot linkkeinä sekä fonttimuotoilut

Editoi koodiesimerkkiä
(avautuu uuteen ikkunaan/välilehteen)

Yhteenveto

Tehtävät

Tehtävissä 1-4 kirjoita vastaukset tekstitiedostoon haluamallasi kirjoitusohjelmalla (esim. Word). Tallenna tiedosto lopuksi opettajan ilmoittamaan sijaintiin. Tehtävät 5-8 voit tehdä haluamallasi WWW-sivueditorilla (esim. Amayalla) ja valmiit WWW-sivut tallennetaan opettajan ilmoittamaan sijaintiin. Tehtävän 8 tuotokset voit tallentaa myös omalle WWW-palvelintilallesi, jos sinulla on sellainen.

  1. Mitä eri WWW-kuvauskieliä on olemassa? Miten ne eroavat toisistaan? Mihin tarvitaan oikeita WWW-ohjelmointikieliä?
  2. Mitä tarkoitetaan elementeillä XHTML-sivun rakenteessa? Entä attribuuteilla? Anna esimerkkejä elementeistä ja attribuuteista.
  3. Miten suhteellinen viittaaminen toimii? Missä sitä käytetään?
  4. Miten kokonainen Internet-sivusto eroaa yhdestä WWW-sivusta?
  5. Tee uusi tyhjä XHTML-tiedosto ja lisää sinne seuraavat elementit (keksi elementtien sisältö itse):
    1. Kahdentasoisia otsikoita (h1 ja h2), keskitä otsikot.
    2. Tekstikappaleita 4 kpl, joissa on seuraavia tyylimäärityksiä:
      1. Yhdessä tekstin väri sininen ja taustaväri keltainen.
      2. Toisessa tasaus oikealle ja leveys 50 %, lisäksi kappaleen sisälle yhteen sanaan tekstin väriksi punainen ja fontille lihavointi.
      3. Kolmannessa fontti Arial ja fontin koko 1.2 em.
      4. Neljänteen vihreät 5 pikselin levyiset kehykset ja marginaali vasemmalta 10 %.
    3. Taulukko, jossa on kaksi saraketta ja kolme riviä sekä reunaviivat.
    4. Kaksitasoinen lista, jossa on sekä numeroituja että numeroimattomia alkioita, lisäksi laita listan alkioista linkkejä toisille Internet-sivuille.
    5. Kuva ja tekstikappale siten, että teksti kiertyy kuvan oikealle puolelle.
  6. Tee alla olevan kuvan näköinen WWW-sivu. Kuvan sivulle voit ladata täältä: maisema.jpg.
    Mallisivu tehtävään
  7. Tee alla olevan kuvan näköinen WWW-sivu. Kuvan sivulle voit ladata täältä: raivuri.jpg.
    Mallisivu tehtävään
  8. Hyödynnä oppimiasi taitoja tekemällä WWW-sivu tai useita WWW-sivuja valitsemastasi aiheesta, esimerkiksi voit tehdä omat kotisivusi.

Lukuun liittyvät harjoitustyöt

Lisätietoa

Erillinen CSS-tyylitiedosto:

Laajempia WWW-sivustoja luodessa WWW-sivun ulkoasumääritykset on järkevää pitää erillään WWW-sivun rakenteesta ja sisällöstä. Tämä toteutetaan CSS-tyylitiedostojen (Cascading Style Sheets) avulla. HTML- tai XHTML-tiedostoon kirjoitetaan siis pelkästään sivun elementit, sisältö ja tarvittaessa attribuutteja. Kaikki ulkoasumääritykset kirjoitetaan erilliseen CSS-tiedostoon (tiedoston pääte .css). HTML-tiedostosta viitataan CSS-tiedostoon, eli sieltä haetaan ulkoasumääritykset WWW-sivulle. Hyötynä on HTML-koodin pysyminen selkeänä sekä se, että samaa tyylitiedostoa voivat käyttää useat HTML-sivut. Tällä tavalla esimerkiksi ison WWW-sivuston tyylimääritykset voidaan kirjoittaa vain yhteen paikkaan.

CSS-tiedostoon tyylimääritykset määritellään samalla periaatteella, kuin ne määriteltäisiin suoraan HTML-tiedostoon style-attribuuttien avulla. Syntaksi on siis sama, mutta paikka eri. Esimerkiksi kerrotaan, mitä tyylimäärityksiä h2-elementti sisältää. Tällä tavalla kaikki HTML-tiedoston h2-elementit saavat kyseiset tyylimääritykset. Jos halutaan määritellä useita erilaisia tyylimäärityksiä esimerkiksi tekstikappaleille, merkitään tekstikappaleet HTML-koodissa käyttämään luokkia ja vastaavasti CSS-tiedostossa kerrotaan tyylimääritykset kullekin luokalle.

CSS-tiedostoon elementeille ja luokille määritellään tyylejä seuraavalla periaatteella (huomaa samankaltainen syntaksi kuin style-attribuuttia käytettäessä):

h2 {
  font-family: Georgia;
  color: blue;
  background-color: yellow;
  text-align: center;
}
.vasen {
  float: left;
  margin: 2em;
  border: 1px solid black;
}

Tyylimääritykset tulevat siis aaltosulkujen sisälle. Elementtien kanssa tyylilohkon tunnisteena käytetään elementin nimeä. Luokkien kanssa laitetaan ensin piste ja sitten luokan nimi. HTML-tiedostossa CSS-luokkiin viitataan class-attribuutilla. Esimerkiksi tekstikappale laitettaisiin HTML-koodissa käyttämään esimerkin vasen-luokkaa seuraavasti:

<p class="vasen">Tekstikappaleen teksti</p>

Jos edellä mainitussa tilanteessa p-elementille olisi määritetty erikseen tyylimääritykset CSS-tiedostossa, saisivat kaikki HTML-tiedoston p-elementit nämä määritykset. Lisäksi ne p-elementit, jotka olisi määritetty käyttämään vasen-luokkaa, saisivat myös vasen-luokan tyylimääritykset. Jos p-elementille määrätyissä tyylimäärityksissä olisi päällekkäisyyksiä vasen-luokalle määritettyjen tyyliominaisuuksien kanssa, voimaan jäisivät vasen-luokan tyylimääritykset. Luokalle määrätyt tyyliominaisuudet siis kumoavat (ylikirjoittavat) elementeille määrätyt tyyliominaisuudet.

HTML- tai XHTML-tiedostolle täytyy alussa kertoa, minkä nimistä tyylitiedostoa se käyttää. Määritys tehdään head-elementin sisälle seuraavalla tavalla (tyylitiedoston tulee sijaita samassa hakemistossa kuin HTML-tiedosto, jotta esimerkki toimii):

<link rel="StyleSheet" href="tyylitiedoston_nimi.css" type="text/css" />

Jos HTML-tiedostossa on määritetty suoria tyylimäärityksiä (tyylimääritykset kirjoitettu HTML-tiedostoon style-attribuutin avulla CSS-tiedoston sijaan) erilliseen tyylitiedostoon määrittelyn lisäksi, kumoavat suorat määritykset tyylitiedoston määritykset. Tyylitiedostoa käytettäessä suoria tyylimäärityksiä HTML-tiedostoon ei yleensä kannata tehdä.

Lisätietoa

HTML-tiedoston validisuuden tarkistaminen:

WWW-sivuja tehdessä koodiin voi helposti tulla virheitä. Esimerkiksi tietyn elementin lopputagi voi unohtua melko helposti. WWW-sivun "kieliopin" oikeellisuuden eli validisuuden voi onneksi tarkistaa helposti Internetissä olevan palvelun (validaattorin) avulla. Tarkistaminen tapahtuu seuraavasti:

Validaattori

Kuva: Validaattori on tarkistanut sivun

Edellä mainittu validaattori tarkistaa sivun HTML-koodin, eikä se puutu mahdollisiin CSS-tyylivirheisiin. Niiden tarkistamiseen on myös oma validaattori Internetissä, jolla tarkistaminen tapahtuu seuraavasti: