HTML5-perusteet
Näissä tehtävissä tutustutaan yleisimpiin HTML5-elementteihin ja niiden käyttämiseen www-dokumenteissa. Lisäksi kokeillaan, miten tyylitiedostoilla voi muuttaa dokumentin ulkoasua. Tehtävät voi tehdä millä tahansa tekstieditorilla, suositus on Visual Studio Code.
- Elementit esimerkkeineen: HTML5-luento ja erillinen elementtiluettelo.
- Malliratkaisu ZIP-paketissa. Kokeile ensin itse.
Sivuston suunnitelmassa on vaatimuksena, että sivulta toiselle liikkuminen on
helppoa. Tässä ohjauksessa tehdään sivut ja niiden sisältö; yhtenäinen
navigointivalikko nav-elementteineen toteutetaan
seuraavassa
ohjauksessa, jossa myös sivuston ulkoasu tehdään CSS:llä.
1. Alkuvalmistelut
Agoran mikroluokissa Visual Studio Code on valmiiksi asennettu. Jos teet tehtäviä kotikoneella, asenna Visual Studio Code. Selaimeksi käy mikä tahansa; suositus on Firefox.
1.1 Web Developer -työkalupalkki
Asenna selaimeesi Web Developer -laajennus. Se kokoaa yhteen valikkoon joukon sivujen tutkimiseen tarkoitettuja työkaluja, joista tässä ohjauksessa käytetään validointia.
- Mene laajennuksen asennussivulle ja napauta Lisää Firefoxiin (Add to Firefox).
- Hyväksy asennus esiin tulevasta ikkunasta.
- Työkalupalkkiin ilmestyy uusi kuvake, jonka takaa työkalut löytyvät. Jos kuvake ei näy, avaa selaimen laajennusvalikko ja kiinnitä se palkkiin.
Web Developer -laajennus on eri asia kuin selaimen omat kehittäjätyökalut, jotka avautuvat F12-näppäimellä. Molempia tarvitaan, mutta eri tarkoituksiin.
1.2 Tarkista kaksi asetusta
Kun avaat tiedoston VS Codessa, katso ikkunan oikeaa alareunaa. Siellä lukee tiedoston merkistö ja rivinvaihtotapa. Molempia voi vaihtaa napsauttamalla.
| Asetus | Arvo | Mitä väärä arvo aiheuttaa |
|---|---|---|
| Merkistö | UTF-8 | Ääkköset näkyvät selaimessa kysymysmerkkeinä tai muodossa ä |
| Rivinvaihto | LF | Ei näy sivulla, mutta haittaa myöhemmin tiedostojen vertailussa ja siirrossa |
Käytä nimissä vain pieniä kirjaimia a–z, numeroita, väliviivaa ja
alaviivaa. Vältä ääkkösiä ja välilyöntejä. Nimi päätyy sellaisenaan
osoiteriville, ja www-palvelin erottaa isot ja pienet kirjaimet toisistaan.
Tiedosto Kuva.PNG ei ole sama kuin kuva.png, vaikka omalla
koneellasi ne toimisivatkin.
1.3 Näin validoit dokumentin
Validointi tarkoittaa sen tarkistamista, että dokumentti noudattaa HTML5:n sääntöjä. Tarkistuksen tekee aina W3C:n validaattori, mutta sinne saa dokumentin kahta reittiä.
Tapa 1: Web Developer -työkalupalkki
Tämä on nopein tapa, kun sivu on jo auki selaimessa. Avaa Web Developer -valikko ja valitse:
| Valinta | Mitä lähetetään | Milloin toimii |
|---|---|---|
| Tools → Validate Local HTML | Sivun lähdekoodi selaimesta | Aina. Toimii sekä paikallisesti avatulle
file:///-tiedostolle että palvelimelta ladatulle sivulle.
Käytä ensisijaisesti tätä |
| Tools → Validate HTML | Sivun osoite | Vain, kun sivu on julkaistu julkiseen osoitteeseen. Paikallisesta tiedostosta tulee virhe Sorry! this document cannot be checked, koska validaattori ei pääse käsiksi oman koneesi tiedostoihin |
Koska Validate Local HTML lähettää itse lähdekoodin, voit validoida sivusi heti kun olet tallentanut sen editorissa ja päivittänyt selaimen. Sivua ei tarvitse viedä palvelimelle ensin.
Tapa 2: validaattorin oma sivu
Laajennusta ei ole pakko käyttää. Osoitteessa validator.w3.org/nu on kolme syöttötapaa:
| Tapa | Milloin |
|---|---|
| Check by File Upload | Kun haluat ladata tiedoston suoraan omalta koneeltasi tai W:-asemalta |
| Check by Text Input | Kun haluat liittää koodin leikepöydältä |
| Check by Address | Kun sivu on jo julkaistu ja haluat tarkistaa palvelimella olevan version |
Vanhoissa ohjeissa neuvotaan siirtämään sivu ensin palvelimelle ja validoimaan vasta sitten. Se oli tarpeen aikana, jolloin validaattori osasi lukea vain osoitteita. Nyt tiedoston voi ladata suoraan, joten virheet kannattaa korjata jo ennen kuin mitään julkaistaan.
Kun saat virheilmoituksia, korjaa yksi virhe kerrallaan ja aloita ensimmäisestä. Yksi puuttuva lopetustagi tuottaa helposti kymmenen seurannaisvirhettä, jotka katoavat kaikki yhdellä korjauksella.
2. Sivuston rakenne
Luodaan kuvitteellinen kotisivusto Nanonano-nimiselle henkilölle. Sivuille halutaan seuraavat osiot:
- Etusivu, joka sisältää lyhyen kuvauksen henkilöstä, yhteystiedot ja valokuvan.
- Artikkelisivu, johon henkilö voi kirjoittaa dokumentteja yleisesti kiinnostavista aiheista.
- Opiskelusivut, joilta löytyy lukujärjestys, tiedot suoritetuista kursseista ja kurssien harjoitustyöt.
- Töihin liittyvät sivut, joille sijoitetaan CV ja työtehtäviin liittyviä kiinnostuksen kohteita.
- Harrastussivut.
- Kuvagalleriasivut.
- Linkkisivu, jolle sijoitetaan suosikkilinkit.
- Vieraskirjasivu.
- Navigointi sivulta toiselle niin, että liikkuminen on helppoa. Tämä toteutetaan seuraavassa ohjauksessa.
Jätetään sivuston toiminnallisuus myöhempään vaiheeseen ja aloitetaan
hakemistorakenteen suunnittelusta. Koska html-tiedostoja tulee useita ja määrä
kasvaa jatkossa, kannattaa kutakin sivua kohden luoda oma
hakemistonsa. Se helpottaa sivuun liittyvien tiedostojen hallintaa ja
lyhentää www-osoitteita: osoitteeseen ei tarvitse kirjoittaa tiedoston nimeä
lainkaan, koska palvelin tarjoaa hakemistosta automaattisesti
index.html-tiedostoa.
2.1 Hakemistorakenteen luonti
Luo kuvaa vastaava hakemistorakenne Resurssienhallinnalla
(Win+E)
W:-asemalle.
Tässä ohjauksessa tarvitset kansiot artikkelit,
artikkelit\it, artikkelit\kokkaus, linkit ja
opiskelu. Muut voit luoda samalla kertaa tai vasta lisätehtävien
yhteydessä.
Huomaa, että jokaisessa kansiossa on oma index.html-tiedostonsa.
Tiedostonimi toistuu, mutta kansiot erottavat sivut toisistaan, eikä nimeä tarvitse
kirjoittaa osoitteeseen.
W:-asema on sama paikka kuin kotihakemistosi html-linkki
halavassa. Kansio W:\www\ on siis ~/html/www/, ja sen
sisältö näkyy osoitteessa
https://users.jyu.fi/~omatunnus/www/. Katso
komentoriviluennon
luku 30.
Jos teet tehtäviä kotikoneella, tallenna tiedostot ensin omalle koneellesi ja siirrä ne palvelimelle digipalvelujen ohjeen mukaisesti. VPN-yhteys tarvitaan aina, kun kone ei ole yliopiston verkossa.
3. Sivujen rakenne
Lisätään suunnitelman mukaiset tekstit ja kuvat useammalle sivulle ja muokataan sivujen rakenne kuntoon. Avaa suunnitelma omaan välilehteensä ja käynnistä tekstieditori.
3.1 Etusivu
-
Aloita uusi dokumentti ja tallenna se W:-aseman
www-hakemistoon nimelläindex.html. -
Avaa HTML5-luennon dokumenttipohja selitteineen. Tutki, mitä osia pohjassa on, ja kopioi se uuden dokumenttisi sisällöksi. Tallenna.
-
Laita
title-elementin sisällöksiNanonano. Hakukoneet painottavat title-elementin tekstiä, joten sen on syytä olla perusmuodossa ja kuvata sivua. -
Lisää sivulle pääotsikko
h1ja kirjoita siihenNanonano. Sijoita otsikko ja kaikki sivun sisältömain-elementin sisään. Rakenne-elementit on esitelty luennon luvussa 7.<body> <main> <h1>Nanonano</h1> ... sivun sisältö ... </main> </body>Mikseiheader?h1-otsikko kertoo, mistä tämä sivu kertoo, joten se kuuluumain-elementtiin.header-elementtiin tulee se, mikä toistuu joka sivulla: sivuston nimi ja navigointivalikko. Koska navigointia ei ole vielä tehty,header-elementtiä ei tässä vaiheessa tarvita. Se lisätään seuraavassa ohjauksessa valikon yhteydessä. -
Kirjoita pääotsikon jälkeen lyhyt parin lauseen kuvaus siitä, mitä Nanonano harrastaa ja opiskelee. Käytä
p-elementtiä. -
Laita väliotsikoksi
h2teksti Yhteystiedot ja kirjoita Nanonanon osoite, puhelinnumero ja sähköpostiosoite. Tiedot löydät suunnitelmasta.Yhteystiedot saat omille riveilleen
br-elementillä. Huomaa, että rivinvaihto kuuluu tässä sisältöön: osoite on yksi kokonaisuus, jonka rivijako on merkityksellinen. Tyhjän tilan tekemiseenbr-elementtiä ei saa käyttää.<p>Nanonano<br /> Taitoniekantie 9<br /> 40740 Jyväskylä</p>Tee sähköpostiosoitteesta
mailto-linkki. Merkintämailto:on kirjoitettava itsehref-attribuuttiin:<p><a href="mailto:nobody@nettimaili.com.invalid">nobody@nettimaili.com.invalid</a></p> -
Tallenna esimerkkikuva hakemistoon
W:\www\. Lisää yhteystietojen perään kuvafigure-elementin sisään:<figure> <img src="omakuva2.png" alt="Nanonano ulkoilemassa talvimaisemassa" /> <figcaption>Nanonano hiihtolenkillä.</figcaption> </figure>img-elementin attribuutit. Attribuutti Merkitys srcKuvan osoite. Pelkkä tiedostonimi riittää, jos kuva on samassa hakemistossa dokumentin kanssa. Tarkista, että nimi on täsmälleen sama kuin tallentamallasi tiedostolla altTeksti, joka korvaa kuvan. Sen lukee ruudunlukija ja se näytetään, jos kuvaa ei voida esittää. Kerro siinä sama tieto kuin kuva välittää. Jos kuva on pelkkä koriste, käytä tyhjää arvoa alt=""alt-tekstistä on lisää luennon luvussa 12.1. Vanhoissa ohjeissa neuvotaan käyttämääntitle-attribuuttia kuvan otsikkona; älä laita siihen olennaista tietoa, koska vihjeteksti ei näy kosketuslaitteilla eikä näppäimistökäytössä. Kuvateksti kuuluufigcaption-elementtiin. -
Kirjoita dokumentin loppuun tiedot sivun ylläpitäjästä ja päivitysajankohdasta. Sijoita ne
footer-elementtiin, joka tuleemain-elementin jälkeen. Päiväys merkitääntime-elementillä, jonkadatetime-attribuutti on koneluettavassa muodossavvvv-kk-pp.<footer> <p>Päivitetty <time datetime="2026-09-04">4.9.2026</time>.</p> <address> Nanonano (<a href="mailto:nobody@nettimaili.com.invalid">nobody@nettimaili.com.invalid</a>) </address> </footer>address-elementti on tarkoitettu nimenomaan yhteystiedoille, ei minkä tahansa osoitteen merkitsemiseen. -
Validoi dokumenttisi nyt, ennen kuin julkaiset sen. Avaa tiedosto selaimeen ja valitse Web Developer -valikosta Tools → Validate Local HTML, tai lataa tiedosto validaattorin sivulla valinnalla Check by File Upload. Molemmat käyvät; luvussa 1.3 on kummankin ohje.
Korjaa virheet yksi kerrallaan ensimmäisestä alkaen ja validoi uudelleen, kunnes tulos on Document checking completed. No errors or warnings to show.
-
Tallenna dokumentti W:-aseman
www-hakemistoon. Nyt sivun pitäisi näkyä osoitteessahttps://users.jyu.fi/~omatunnus/www/Huomaa, että
index.html-tiedoston nimeä ei tarvitse kirjoittaa osoitteeseen: palvelin tarjoaa sen hakemistosta automaattisesti.Jos muutokset eivät näyPaina Ctrl+Shift+R (macOS: Cmd+Shift+R). Se lataa sivun selaimen välimuistia ohittaen. Pelkkä päivityspainike ei aina riitä.
-
Katso sivua vielä kapealla näytöllä. Avaa kehittäjätyökalut F12-näppäimellä ja kytke päälle laitenäkymä (Ctrl+Shift+M). Kaventaa noin 360 pikseliin. Tekstin pitäisi rivittyä eikä sivua pitäisi joutua vierittämään sivusuunnassa. Jos joutuu, tarkista että pohjassa on
<meta name="viewport" ... />.
3.2 Opiskelut
-
Aloita uusi HTML5-dokumentti samalla tavalla kuin etusivu ja tallenna se hakemistoon
W:\www\opiskelu\nimelläindex.html. Ole tarkkana, että tallennat oikeaan kansioon etkä vahingossa aiemmin tekemäsi dokumentin päälle. -
Keksi dokumentille järkevä pääotsikko
h1ja sopivatitle, esimerkiksiOpiskelu - Nanonano. Sivua parhaiten kuvaava sana tulee ensin. -
Lisää toisen tason otsikko
Viikkolukujärjestys. -
Kirjoita esimerkin mukainen viikkolukujärjestys taulukkona. Taulukot voit kerrata luennon luvusta 11.
Tavoiteltava lopputulos. Lukujärjestys vaatii kunnolliset otsikkosolutLukujärjestyksessä on sekä sarakeotsikot (viikonpäivät) että riviotsikot (kellonajat). Merkitse molemmat
th-elementillä ja kerroscope-attribuutilla, kumpaa otsikko koskee. Lisää taulukolle myöscaption. Ilman näitä ruudunlukija ei osaa yhdistää solua oikeaan päivään ja kellonaikaan, eikä taulukosta saa selvää.<table> <caption>Nanonanon viikkolukujärjestys</caption> <thead> <tr> <th scope="col">Aika</th> <th scope="col">Maanantai</th> <th scope="col">Tiistai</th> </tr> </thead> <tbody> <tr> <th scope="row">8–10</th> <td>ITKP1011</td> <td></td> </tr> </tbody> </table>Vasemman yläkulman solu on otsikko sille sarakkeelle, jossa kellonajat ovat, joten siihen sopii teksti
Aika. Jos jätät sen tyhjäksi, merkitse setd-elementillä äläkäth-elementillä: tyhjä otsikko ei kerro mitään. -
Lisää väliotsikko
Opintosuoritusoteja sen perään suoritetut kurssit. Käytäpre-elementtiä.Miksi
preeikä taulukko? Ote on kopioitu opintorekisteristä sellaisenaan, ja sen sarakkeet on kohdistettu välilyönneillä. Selain tiivistää normaalisti peräkkäiset välilyönnit yhdeksi, jolloin kohdistus hajoaisi.pre-elementti säilyttää tekstin alkuperäisen kirjoitusasun. Jos kirjoittaisit otteen itse alusta alkaen, se kuuluisi taulukkoon. -
Validoi sivu (Tools → Validate Local HTML) ja tallenna se. Sivu näkyy osoitteessa
https://users.jyu.fi/~omatunnus/www/opiskelu/
3.3 Linkit
-
Aloita uusi dokumentti ja tallenna se
linkit-hakemistoon nimelläindex.html. -
Lisää asianmukaiset otsikot (
titlejah1). -
Lisää suunnitelman kiinnostavat linkit sivulle järjestämättömänä listana (
ul). Listat voit kerrata luennon luvusta 10. -
Tee linkkiteksteistä hyperlinkkejä. Osoite tulee
href-attribuuttiin.<li><a href="https://www.osoite.example/">Linkkiteksti</a></li>Linkkiteksti kertoo kohteenKeksi jokaiselle linkille teksti, josta selviää minne se vie. Älä käytä osoitetta linkkitekstinä äläkä ilmauksia kuten ”tästä” tai ”lisää”. Ruudunlukijan käyttäjä voi selata sivun linkit listana ilman ympäröivää tekstiä.
Muista kirjoittaa osoite kokonaisena, protokolla mukaan lukien.
href="www.jyu.fi"ei vie jyu.fi-sivustolle vaan etsii nykyisestä kansiosta tiedostoa nimeltäwww.jyu.fi. -
Validoi sivu, tallenna se ja testaa selaimella, että kaikki linkit toimivat.
3.4 Artikkelit
-
Aloita uusi dokumentti ja tallenna se
artikkelit-hakemistonit-alihakemistoon nimelläindex.html. -
Lisää pääotsikko
IT ja tietoliikenne: kurkistus tulevaisuuteenja keksi sopivatitle, esimerkiksi:<title>IT ja tietoliikenne: kurkistus tulevaisuuteen - Artikkelit - Nanonano</title> -
Lisää artikkeliin kymmenen kappaletta tekstiä Lorem Ipsum -generaattorilla. Palvelu tuottaa latinankielistä tekstiä, jota käytetään yleisesti testitekstinä silloin, kun halutaan tarkastella rakennetta ja ulkoasua eikä sisältöä.
-
Liitä teksti dokumenttiin ja tarkista, että jokainen kokonainen kappale on merkitty omalla
p-elementillään. Generaattori antaa tekstin tyhjillä riveillä eroteltuna; tyhjä rivi ei tee kappaletta, vaanp-elementti tekee. -
Lisää väliin muutama toisen tason otsikko, vaikkapa
Vertebra cervicalisjaDorsum tergum. -
Tallenna kaavio.png-kuva
it-hakemistoon ja lisää se johonkin kohtaan dokumenttia. Kuva lisätään samalla tavalla kuin etusivulle. Huomaa, että kaaviokuvanalt-tekstin pitää kuvailla kaavion sisältö, ei kuvan ulkonäköä. -
Validoi dokumentti, tallenna se ja testaa selaimella.
-
Tee
kokkaus-hakemistoon uusi dokumentti nimelläindex.html. Lisää looginentitle, esimerkiksi:<title>Kuinka valmistaa hyvää opiskelijaruokaa halvalla? - Artikkelit - Nanonano</title>Lisää myös sopiva
h1-otsikko. Muutoin dokumentin voi jättää alkutekijöihinsä. -
Tee
artikkelit-hakemistoon uusi dokumentti nimelläindex.html. Tämä on artikkelien kooste- eli hakemistosivu.- Otsikoksi
Artikkelitjatitle-elementtiin esimerkiksiArtikkelit - Nanonano. - Tee järjestämätön lista artikkeleista ja käytä listakohtina artikkelien nimiä.
- Tee nimistä linkkejä. Käytä suhteellista viittausta kyseiseen artikkeliin.
Voit viitata suoraan artikkelin sisältävään hakemistoon, koska palvelin tarjoaa hakemistosta
index.html-tiedoston automaattisesti. Viittaukset tehdään suhteessaartikkelit-hakemistoon, jossa viittaava dokumentti sijaitsee.Suhteellisen viittauksen muotoja. Viittaus Kohde foo.htmlTämän hakemiston tiedosto foo.htmltesti/bar.htmlAlihakemiston testitiedostobar.htmltesti/Alihakemisto testi, josta näytetäänindex.html../Isähakemisto eli yksi taso ylöspäin ../testi/Isähakemiston alihakemisto testiSuhteellisista viittauksista on lisää luennon luvussa 14, ja niitä voi harjoitella erillisellä työkalulla.
- Otsikoksi
-
Tallenna dokumentti. Avaa se selaimessa kahdella eri tavalla: ensin suoraan tiedostona valinnalla Tiedosto → Avaa tiedosto ja sen jälkeen www-osoitteesta. Kokeile tekemiäsi linkkejä molemmissa tapauksissa.
Mieti, miksi linkit vievät erinäköisille sivuille, vaikka kyseessä on sama dokumentti. Katso selaimen osoiteriviä: toisessa tapauksessa se alkaa merkinnällä
file:///ja toisessahttps://. Kumpi versio kertoo, toimiiko sivustosi oikeasti? -
Validoi kaikki tekemäsi sivut.
4. Tyylit
Dokumenttipohjassa on head-elementissä linkki tyylitiedostoon:
<link rel="stylesheet" href="tyyli.css" />
Tiedostoa tyyli.css ei ole vielä tehty, joten sivut näkyvät toistaiseksi
selaimen oletustyyleillä. Kokeile vaihtaa href-attribuutin arvoksi jokin
seuraavista, niin näet miten sama dokumentti muuttuu pelkkää tyylitiedostoa
vaihtamalla:
https://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus2/w3c1.csshttps://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus2/w3c2.csshttps://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus2/w3c3.csshttps://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus2/w3c4.csshttps://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus2/w3c5.css
Huomaa, että dokumentin sisältö ja rakenne eivät muutu lainkaan. Juuri tästä on kyse, kun sanotaan että HTML merkitsee rakenteen ja CSS määrittelee ulkoasun. Lisää esimerkkejä saman sisällön erilaisista ulkoasuista löytyy CSS Zen Garden -sivustolta.
Seuraavassa ohjauksessa teet oman tyylitiedoston ja lisäät sivustolle navigointivalikon.
5. Lisätehtäviä
Laajaa sivustoa päivitetään ajan kanssa. Suunnitelmassa on vielä useita kohtia, joista ei ole tehty omia sivuja. Luo harkintasi mukaan sivut suunnitelman pohjalta ja tallenna ne sopiviin hakemistoihin. Ainakin nämä puuttuvat:
- Harrastussivut ja niiden alisivut.
- Harkkasivut opiskelukansiossa: harjoitustyöt eri kursseilta.
- Työsivut: CV ja esimerkkejä osaamisalueista.
- Galleria ja vieraskirja. Nämä toteutetaan myöhemmin.
6. Tarkistuslista
Käy lista läpi, ennen kuin siirryt seuraavaan ohjaukseen.
- Onko jokaisessa hakemistossa
index.html, ja aukeavatko kaikki sivut osoitteesta ilman tiedostonimeä? - Meneekö jokainen sivu validaattorista läpi ilman virheitä?
- Onko jokaisella sivulla täsmälleen yksi
h1ja kuvaavatitle? - Onko jokaisella kuvalla
alt-teksti, joka kertoo kuvan sisällön? - Onko lukujärjestystaulukossa
caption,thjascope? - Toimivatko artikkelisivun suhteelliset linkit myös palvelimelta avattuna?
- Ovatko kaikki tiedosto- ja kansionimet pieniä kirjaimia ilman ääkkösiä?
- Ovatko tiedostot UTF-8-muodossa, ja näkyvätkö ääkköset selaimessa oikein?
- Näyttääkö sivu järkevältä myös kapealla näytöllä?
Käyttäjien kommentit