Demo 5 - HTML5, salasanasuojaus, SSI ja CSS
- Mallivideot
- HTML5-ominaisuudet
- Salasanasuojaus
- SSI (Server Side Includes)
- CSS
- Lisätehtävä: WWW-lomakkeen muotoilu
Mallivideot
- salasanasuojaus.wmv 2.9M
- salasanasuojaus.mp4 H.264-pakkaus, 1.2M
- lomakkeen_muotoilu.wmv 9.0M
- lomakkeen_muotoilu.mp4 H.264-pakkaus, 3.7M
Ongelmia videon katselussa?
Näissä demoissa harjoitellaan HTML5:sen käyttöä videon ja äänen linkittämisen sekä lomake-elementtien osalta, tehdään salasanasuojaus, harjoitellaan SSI:n käyttöä sekä aletaan harjoittelemaan CSS:n käyttöä.
HTML5-ominaisuudet
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 2 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/tiep161_s16_l2.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/tiep161_s16_l2.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?
Kokeillaan lisäksi muutamaa HTML5-lomakeominaisuutta edellisessä demossa tehtyyn sähköpostilomakkeeseen.
- Jos teit sähköpostilomakkeen XHTML-sivuna, muuta ensin sivu HTML5-sivuksi.
- Kokeile sitten lisätä lomakkeeseen muutamia uusia HTML5-lomake-elementtejä sekä -attribuutteja. Miten saat esimerkiksi Aihe-kentän pakolliseksi tai kenttään pohjalle myös vihjetekstin?
- Katso ohjeita luennolta 3.
- Validoi lopuksi lomakesivusi ja korjaa mahdolliset virheet.
- Kokeile lisäämiesi HTML5-lomaketoiminnallisuuksien toimimista eri selaimilla.
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/hidden/.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ä hidden-kansio ja sen mahdolliset alikansiot. Esim.
/nashome1/anjoekon/html/hidden/.users
- Luo hidden-niminen hakemisto W-aseman juureen (eli WWW-kotisivutilasi juurihakemistoon).
- Mene sen jälkeen jalava.cc.jyu.fi-koneessa juuri luomaasi hidden-hakemistoon
ja luo siellä käyttäjätunnus ja salasana komennolla:
htpasswd -c .users tunnus
- WWW-kotisivuhakemistosi juureen pääset jalavassa komennolla cd /wwwhome/$HOME/html.
- 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 IT-palveluiden 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 sivun 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 kolmannessa demossa tehdyn 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 HTML5/XHTML-sivun pohjatietoja). 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 HTML-koodit ja korjaa mahdolliset virheet.
Lisätietoa
CSS
Muotoillaan kolmannessa 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 Pin CSS -painiketta Edit CSS -palkin ylälaidasta. Painike tulee siis olla valittuna: . Tämä on olennaista, sillä jos menet muulle sivulle selaimessa eikä Pin ole päällä, niin muutokset katoavat! Pidä tehtävät ja muut sivut omassa ikkunassa ja kolmannessa demossa luomasi WWW-sivut (joiden ulkoasua aletaan nyt muokata) 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 kannattaa 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.
- 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.
Lisätehtävä: WWW-lomakkeen muotoilu
Demossa 3 tehtiin sähköpostilomake, jonka ulkoasua nyt hieman muokataan.
Lomake-elementtien ulkoasun muokkaaminen toimii yleensä ottaen aika huonosti, sillä selaimiin on määrätty usein melko kiinteästi, miltä lomakkeet näyttävät. Hieman asemointia kuitenkin pystyy tekemään:
- Avaa demossa 3 tehty sähköpostilomake Firefoxiin ja valitse Web Developer -työkalupalkista CSS | Edit CSS.
- Lisää
fieldset
-elementille taustasta poikkeava väri. Värin voit valita myös kuvasta tai paletista esimerkiksi Firefoxin ColorZilla-työkalun avulla. - Muuta kaikkiin lomake-elementteihin (
input, option, textarea
) tasalevyinen kirjasin eli esimerkiksi Courier New ja yleisvaihtoehto monospace. - Määrää erilainen taustaväri toisen
fieldset
-lohkon sisällä olevallefieldset
-lohkolle. - Tasataan lomake-elementit samalle tasolle vaakasuunnassa. Muuta ensin CSS:ssä
label
-elementin rivittyminen tekstin tasosta (engl. inline) lohkoksi (engl. block). Vinkki: käytädisplay
-ominaisuutta. - Määrää
label
-elementin leveydeksi 30%. - Liu'uta (
float
)label
-elementit vasempaan laitaan, jolloin lomake-elementit rivittyvätlabel
-elementtien oikealle puolelle. - Estä vielä toisen
label
-elementin rivittyminen samalle riville toisenlabel
-elementin kanssa. Se onnistuuclear
-ominaisuudella. - Lisää myös
textarea
-elementilleclear
-ominaisuus, jolloin saat sen rivittymään otsikon alapuolelle. Teetextarea
-elementistä vielä lohkotason elementtidisplay
-ominaisuuden avulla, niin se rivittyylabel
-elementin alapuolelle isoillakin näytöillä. - Tallenna tyylitiedoston muutokset lomake.css-tiedostoon.
- Testaa lopuksi selaimella, että lomakkeesi näyttää suunnilleen mallikuvan lomaketta vastaavalta.
- Validoi CSS-tiedostosi ja korjaa mahdolliset virheet.
Käyttäjien kommentit