Tehtävät 8
Lue tehtävät läpi. Tee tehtävän harjoitus ohjeiden mukaan ja palauta tehtävässä luodut tiedostot sähköpostilla osoitteeseen www-ohjelmointi@petrit.net .
Tehtävän palautus 4.4.2016 mennessä!
Kertaustehtäviä
Lataa oheinen zip-paketti, josta löytyy HTML-, CSS- ja Javascript-tiedosto. Täydennä ne alla olevien ohjeiden mukaisesti. Lisää HTML-elementit HTML-tiedostoon, CSS-säännöt CSS-tiedostoon ja Javascript-toiminnallisuus JS-tiedostoon.
Tee oma ratkaisusi ennen kuin katsot malliratkaisun.
- Lisää
<article>-osioon merkittyyn kohtaan (Paikka 1) neljä 2-tason otsikkoa luokillahaitariotsikkoja teksteillä:- HTML
- CSS
- Javascript
- Palvelin
- Lisää edellisen kohdan kunkin otsikon alle
<div>-elementti, jonka luokkana onhaitarisisalto. - Lisää edellisen kohdan elementtien sisään numeroidut listat, joiden alkioina ovat kurssin kotisivuilla vastaavan osion etusivulla olevat viisi ensimmäistä väliotsikkoa. (1. Johdanto, 2. Dokumentin rakenne, 3. Head-osio,…)
- Tee lista-alkioista linkkejä vastaaville sivuille.
- Lisää luokalla
haitarija id:llähaitari1varustettu<div>-elementti kaikkienhaitariotsikko- jahaitarisisalto-elementtien ympärille. (Yksi elementti) - Kopioi
#haitari1kahteen muuhun merkittyyn kohtaan (Paikka 2 ja Paikka 3) ja vaihda näiden uusien elementtien id:ksi vastaavastihaitari2jahaitari3. - Lisää CSS-sääntö, jolla
haitari-luokalla varustetuille elementeille tulee- maksimileveydeksi 45 em
- vasemmaksi ja oikeaksi marginaaliksi arvot
auto
- Lisää CSS-säännöt, joka laittavat
haitariotsikko-luokalla varustetuille<h2>-otsikoille seuraavat tyylit:- sopiva taustaväri
- sopivan värinen ja paksuinen reunaviiva
- reunaviivalle pyöristystä
- sopivasti täytettä, että teksti ei ole ihan raunassa kiinni
- marginaaliksi 0
- hiiren kursoriksi sama kuin yleensä linkeillä
- korosta otsikkoa jotenkin, kun hiiri on sen päällä (esimerkiksi vaaleampi taustaväri, varjostuksella luoto hehku tai erivärinen teksti)
- Lisää CSS-sääntö, jolla
haitariotsikko-elementeillebefore-pseudoelementin sisällöksi tulee Unicode-merkki numero 25B6. - Lisää CSS-sääntöjä
haitarisisalto-elementille- taustaväri/-kuva
- marginaali: ylös ja alas 0, sivuille “sopivasti”
- täytettä ylös ja alas 1em ja sivuille sopivasti
- ohut reunaviiva
- Lisää CSS-sääntö, joka piilottaa
haitarisisalto-elementit näkyvistä. (Niin, etteivät ne vie tilaa) - Lisää CSS-sääntö, joka korostaa
haitariotsikko-elementit, jos niillä on myös luokkaauki. - Lisää CSS-sääntö, jolla
haitariotsikko-elementinbefore-pseudoelementin sisällöksi tulee Unidoce-merkki numero 25BC, jos sillä on luokkaauki. - Lisää CSS-sääntö, joka asettaa
haitarisisalto-elementin näkyviin, jos se onhaitari1:n sisällä ja sen edellä onhaitariotsikko, jolla on luokkaauki. - Lataa jQuery-kirjaston versio 1.12.x osoitteesta https://jquery.com/ ja lataa se HTML-tiedoston
<head>-osiossa. - Lisää JS-tiedostoon rakenne, jolla toimintoja suoritetaan, kun sivu on ladattu:
$(document).ready(function(){ /* Tähän koodia */ });
Lisää rakenteen sisään seuraavat toiminnallisuudet. - Etsitään sivulta kaikki
haitari1-id:llä varustetun elementin sisällä olevathaitariotsikko-elementit- Lisätään niille tapahtumakäsittelijä tapahtumalle
click. Käsittelijä tekee seuraavaa: - jos klikatulla otsikolla (
$(this)) on luokkaauki, se poistetaan, jos ei, niin se lisätään
- Lisätään niille tapahtumakäsittelijä tapahtumalle
- Etsitään sivulta kaikki
haitari2-id:llä varustetun elementin sisällä olevathaitariotsikko-elementit- Lisätään niille tapahtumakäsittelijä tapahtumalle
click. Käsittelijä tekee seuraava: - Tarkistetaan, onko otsikolla (
$(this)) luokkaauki. (Laita muuttujaan) - Jos luokka on, otetaan se pois ja liu’utetaan sen jälkeen oleva
haitarisisalto(.next('.haitarisisalto')) animoiden kiinni (.slideUp()). - Jos luokkaa ei ole, lisätään se ja liu’utetaan sen jälkeen oleva
haitarisisalto(.next('.haitarisisalto')) animoiden auki (.slideDown()).
- Lisätään niille tapahtumakäsittelijä tapahtumalle
- Etsitään sivulta kaikki
haitari3-id:llä varustetun elementin sisällä olevathaitariotsikko-elementit- Lisätään niille tapahtumakäsittelijä tapahtumalle
click. Käsittelijä tekee seuraavaa: - Tarkistetaan, onko otsikolla (
$(this)) luokkaauki. (Laita muuttujaan) - Etsitään otsikon lähimmän vanhempana olevan
haitari-luokallisen elementin (.closest('.haitari')) lapset, joilla on luokkahaitariotsikkoja otetaan niiltä pois luokkaauki. - Etsitään otsikon lähimmän vanhempana olevan
haitari-luokallisen elementin (.closest('.haitari')) lapset, joilla on luokkahaitarisisaltoja liu’utetaan ne kiinni. - Jos klikattu otsikko ei ollut auki, lisätään sille luokka
aukija liu’utetaan sen jälkeen olevahaitarisisaltoauki.
- Lisätään niille tapahtumakäsittelijä tapahtumalle