Demo 4 - HTML5, salasanasuojaus, SSI ja CSS
Näissä demoissa harjoitellaan HTML5:sen käyttöä videoiden ja äänen linkittämisen osalta, tehdään salasanasuojaus, harjoitellaan SSI:n käyttöä sekä aletaan harjoittelemaan CSS:n käyttöä.
HTML5 - videot ja ääni
Tehdään HTML5-sivu, jolle lisätään video- ja äänitiedosto.
- Luo W-asemalle opetusteknologia-hakemiston alle hakemisto html5. Luo kyseiseen hakemistoon tyhjä HTML5-sivu (index.html-tiedosto). Katso tarvittavat sivun pohjatiedot luennon 3 materiaalista.
- Lisää sivulle sen aiheeseen sopiva title ja pääotsikko (h1).
- Lisää sivulle video-elementti. Videon osoitteeksi (src-attribuutti) laita esimerkiksi http://appro.mit.jyu.fi/opetusteknologia/luennot/luento2/opetusteknologia2.mp4. Laita näkyviin myös videon ohjaamispainikkeet (controls="controls" -atribuutti). Määrää videon kooksi 640x480 pikseliä (width- ja height-atribuuttien avulla).
- Lisää sivulle myös audio-elementti. Äänen osoitteeksi laita esimerkiksi http://appro.mit.jyu.fi/opetusteknologia/luennot/luento2/opetusteknologia2.mp3. Laita näkyviin myös audion ohjaamispainikkeet.
- Validoi sivusi ja korjaa mahdolliset virheet.
- Kokeile sivua eri selaimilla. Todennäköisesti kaikilla selaimilla molemmat mediaelementit eivät toimi. Millä selaimella toimii parhaiten?
Salasanasuojaus
Yksittäinen kansio ja sen alikansiot on helppo suojata salasanalla.
- Suojataan äsken tehty HTML5-sivu salasanalla. Lisää html5-kansioon
.htaccess-tiedosto ja kirjoita sinne:
AuthUserFile /foobar/tunnus/html/opetusteknologia/html5/.users AuthGroupFile /dev/null AuthName ByPassword AuthType Basic <Limit GET> require valid-user </Limit>
AuthUserFile-kohtaan annettava polku on oltava WWW-palvelimella toimiva ja sen on osoitettava salasanatiedostoon. Oikean polun alun voi tarkistaa jalava.cc.jyu.fi-koneessa (tai halava.cc.jyu.fi) kirjoittamalla siellä echo $HOME.
[anjoekon@jalava ~]$ echo $HOME /nashome1/anjoekon
Saatuun polkuun pitää vielä lisätä html-kansio ja sen mahdolliset alikansiot. Esim.
/nashome1/anjoekon/html/opetusteknologia/html5/.users
- Luo jalava.cc.jyu.fi-koneessa html5-hakemistossa käyttäjätunnus ja salasana komennolla:
htpasswd -c .users tunnus
- Jos sinulla ennestään on jo olemassa .users-tiedosto ja haluat lisätä siihen tunnuksia, niin komento on:
htpasswd .users tunnus
- Kokeile kysyykö selain tunnusta ja salasanaa.
- Tarkemmin hakemistojen suojaamisesta voi lukea Tietohallintokeskuksen ohjeesta.
SSI (Server Side Includes)
Samanlaisena toistuvien elementtien lisääminen ja muokkaaminen on vaivalloista, sillä samaa koodia joudutaan normaalisti kopioimaan useille sivuille. Toistuvia osia ovat usein esimerkiksi vakionavigointipalkki ja päivitystiedot. Parempi ratkaisu on keskittää kaikille sivuille yhteiset osat samaan paikkaan ja liittää ne automaattisesti kullekin sivulle sopivaan paikkaan. Tähän voidaan käyttää esimerkiksi Apache-palvelimissa toimivaa SSI-tekniikkaa. WWW-palvelin tulkitsee dokumenttiin upotetut komennot ennen sivun lähettämistä selaimelle.
Tehtävä: Helpotetaan Opetusteknologia-sivuston ylläpitoa ja navigointia lisäämällä kaikille dokumenteille yhteinen navigointi yhteen tiedostoon, josta sitä on helppoa keskitetysti ylläpitää.
- Aloita uusi täysin tyhjä dokumentti (ilman XHTML-deklaraatioita). Kopioi tähän dokumenttiin luomasi Opetusteknologia-sivuston etusivulla olevan listan (ul-elementti) lähdekoodi.
- Lisää listaan ensimmäiseksi uusi lista-alkio (li) nimeltä Etusivu.
- Muuta kaikki linkit puoliabsoluuttisiksi (jos teit ne alunperin suhteellisina),
jotta samat linkit toimivat miltä tahansa sivulta. Esim:
<li><a href="/~omatunnus/opetusteknologia/demot/">Demot</a></li> - Lisää puoliabsoluuttinen linkki myös äsken luotuun Etusivu-lista-alkioon.
- Tallenna navigointipalkki navbar.include-nimellä Opetusteknologia-sivuston juureen W:\opetusteknologia\.
-
Muuta W:\opetusteknologia\-hakemistossa olevan index.html-tiedoston nimeksi index.shtml.
- Useissa Apache-palvelimissa oletuksena .shtml-päätteiset tiedostot prosessoidaan SSI-komentojen varalta. Hakemistosta palautetaan yleensä index.shtml-tiedosto, jos hakemistossa ei ole index.html-tiedostoa. Voimme siis käyttää hakemistoissa aivan hyvin index.shtml-nimisiä tiedostoja, koska linkkimme viittaavat hakemistoihin eivätkä index.html-tiedostoihin.
- Muuta index.shtml-tiedostoa siten, että lisäät uuden väliotsikon (h2) ennen address-lohkoa. Laita lohkolle nimeksi Navigointi.
- Lisää äsken luodun väliotsikon perään navigointilista seuraavalla SSI-komennolla:
<!--#include virtual="/~omatunnuksesi/opetusteknologia/navbar.include"--> - Kokeile selaimella miten etusivu toimii nyt selaimessa:
http://users.jyu.fi/~omatunnus/opetusteknologia/
Jos kaikki meni oikein, niin edellä lisäämäsi SSI-komennon tilalla pitäisi selaimessa näkyä ihan normaali navigointilista, jonka WWW-palvelin lisäsi navbar.include-tiedostosta SSI-komennon kohdalle.
- Varmista, että navigointipalkin linkit toimivat.
- Kokeillaan lisätä SSI:n avulla myös dokumentin muutosaika sivulle. Siirrä index.shtml-tiedoston lopussa
oleva
strong-elementti poisaddress-lohkosta ja sijoita sep-elementin sisälleaddress-lohkon perään. Korvaa aikamääre rivillä:<!--#config timefmt="%Y-%m-%d %T"--><!--#echo var="LAST_MODIFIED"-->
- Ensimmäinen kommentti määrää SSI:n päivämäärämuotoilun.
- Jälkimmäinen kommentti aiheuttaa varsinaisen muutosajankohdan lisäämisen.
- Kokeile selaimella ilmestyikö muutosaika sivulle.
- HUOM! Jos muutosajankohta tai muut SSI-komentosi eivät tunnu toimivan, niin varmista että hakemistossasi ei ole enää index.html- ja/tai index.htm-nimisiä tiedostoja. Jos niitä löytyy, niin silloin index.shtml-tiedostoja ei prosessoida hakemiston oletustiedostoiksi. Tällöin kyseiset index.html- ja/tai index.htm-tiedostot täytyy joko nimetä uudelleen tai poistaa, jotta index.shtml-tiedoston saa toimimaan hakemiston oletustiedostona.
- Siirrä
address-lohko omaan tiedostoon address.include. Lisää se etusivun loppuun ennen sivun päivitysaikaa SSI-komennolla:<!--#include virtual="/~omatunnuksesi/opetusteknologia/address.include"-->- Miksi päivitysajankohtaa ei voitu siirtää suoraan address.include-tiedostoon?
- Lisää SSI-komentojen avulla navigointipalkki, tekijätiedot ja muutosajankohta myös muille edellisessä demossa tekemillesi sivuille.
Muista muuttaa tiedostojen päätteet
shtml-muotoon, jotta SSI-komennot toimivat. - Validoi lopuksi sivujen XHTML-koodit ja korjaa mahdolliset virheet.
Lisätietoa
CSS
Muotoillaan edellisessä demossa tehtyjen WWW-sivujen ulkoasua CSS:n avulla keskitetysti yhden tiedoston avulla.
Perusmääritykset
- Luo aluksi tyhjä tiedosto nimeltä tyyli.css opetusteknologia-hakemistoon.
Lisää tiedostoon seuraavat rivit ja tallenna tiedosto:
body { background-color: white; color: black; font-family: "Courier New", monospace; } - Avaa seuraavaksi Firefoxilla sivu http://users.jyu.fi/~tunnus/opetusteknologia/. Aletaan tehdä ulkoasumäärityksiä Firefoxin Web Developer -työkalun (asennusohjeet demossa 3) avulla.
- Varmista, että sivulle on linkitetty tyyli.css-niminen CSS-tiedosto. Jos linkitystä ei ole, niin lisää se head-elementin sisälle seuraavasti:
<link href="tyyli.css" rel="StyleSheet" type="text/css" /> - Valitse Web Developer -työkalupalkista CSS | Edit CSS. Laajenna palkkia hieman niin, että näet paremmin tekstit.
- Napauta Stick-painiketta Edit CSS -palkin
ylälaidasta. Painike menee harmaaksi:
. 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-familyarvoksi (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-seriftarkoittaa 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.
- 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. - Keskitetään vielä pääotsikko (h1). Se onnistuu
text-align: center;-määrityksellä. - Tallenna tyylitiedosto opetusteknologia-hakemistoon napauttamalla Edit CSS -palkista
Tallenna-painiketta (
). Valitse nimeksi tyyli.css. - Validoi CSS-tiedostosi valitsemalla Web Developer -työkalupalkista Tools | Validate CSS, ja korjaa mahdolliset virheet.
- Käy muuttamassa muidenkin tekemiesi sivujen CSS-linkitys osoittamaan samaan tyyli.css-tiedostoon. Voit käyttää suhteellista tai puoliabsoluuttista viittausta. Kaikkien sivujen tulee siis käyttää yhtä ja samaa CSS-tiedostoa samasta hakemistosta. CSS-tiedostoa ei siis ole tarpeen kopioida erikseen jokaiseen hakemistoon. Testaa sivuja ja varmista, että ulkoasumääritykset tulivat käyttöön kaikille sivuille.
Navigoinnin ulkoasu
Määritellään seuraavaksi sivustolla käytetylle navigointilistalle erottuva ulkoasu.
- Käy ensin lisäämässä jokaiseen luomaasi HTML-tiedostoon navigointilistan ympärille div-elementti ja
siihen class-attribuutti. Attribuutin arvoksi anna
navbar:<div class="navbar"> <ul> ... </ul> </div> - Jatketaan seuraavaksi CSS-tiedoston muokkausta Web Developerin Edit CSS -toiminnon avulla.
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ä tahansa elementin yhteydessä kertomalla class-attribuutilla käytetyn tyylin nimi.
- Navigointilistalle 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ää haluamasi värimääritykset.- Värien määritteleminen RGB-koodeina on selitetty esim. RGB Color Values -dokumentissa.
- Navigointilistalle voidaan määrittää myös normaalia kapeampi leveys, koska navigoinnissa ei ole leveää sisältöä:
width: 20%; - Lisää navigointilistalle myös 1.5em:n marginaali (margin).
- Reunaviivan ja lohkon sisällön väliseen alueeseen pääsee käsiksi padding-ominaisuudella (täyte). Määrittele täytteeksi 1em.
- Tallenna lopuksi CSS-tiedosto ja validoi se.
Muut ulkoasumääritykset
Tehdään lopuksi vielä muutamia muita ulkoasumäärityksiä:
- Käy ensin lisäämässä Demot-sivulle sen ensimmäisen p-elementin yhteyteen id-attribuutti
ja siihen arvoksi
tarkein:<p id="tarkein"><strong>Kurssin demojen aiheet</strong></p> - Jatketaan seuraavaksi CSS-tiedoston muokkausta Web Developerin Edit CSS -toiminnon avulla.
Lisää uusi
#tarkein-tyyli ja sille 1.5-kertainen fontin koko seuraavalla tavalla:font-size: 150%;Kokeile Demot-sivun toimintaa selaimella.
Risuaidalla (#) alkavat tyylit ovat määrityksiä, joita voidaan käyttää sellaisten elementtien yhteydessä, joille on annettu tunniste (id). Erona class-attribuuttiin on se, että yhdessä HTML-tiedossa ei saa olla useampia samoja tunnisteita (id), mutta samannimisiä luokkia (class) saa olla useita.
- Lisää taulukon otsikkosoluille (th) muista soluista poikkeava taustaväri (background-color).
- Lisää kaikille taulukon soluille (th ja td) hieman täytettä (padding), jotta tekstit eivät ole ihan kiinni solujen reunaviivoissa.
- Tallenna CSS-tiedosto ja validoi se.
- Varmista lopuksi, että tekemäsi ulkoasumääritykset toimivat kaikilla sivuilla.

Käyttäjien kommentit