Labora&on 4 CSS och validering samt fråga D övningar/uppgi?er 1M321 Webbteknik 1, 7,5hp Medieteknik 2017 Rune Körnefors rune.kornefors@lnu.se
1. Ladda ner arbetsdokument och skapa en mapp för U2 Till övningarna i denna labora&on finns det en bildfil som du kan ladda ner i en zip-fil. Länk &ll zip-filen finns på labora&onens webbsida. Då du packat upp zip-filen, får du en mapp som innehåller bildfilen. Skapa en mapp kallad u2 i din mapp dold i mappen webbsidor, som du skapade i labora&on 1. De filer du sedan skapar i labora&on 4 &ll 6, lägger du i mappen u2. Skapa där en mapp pics och lägg den nedladdade bildfilen i den. pics är mappen med bilden som du laddar ner från labbens sida. Övriga filer är de som du nu ska skapa i labora&onen.
2a. Skapa en HTML-fil Även i uppgi? U2 ska du skapa tre webbsidor med svar på varsin fråga. Det ges en fråga i var och en av de tre labora&onerna L4 &ll L6. Frågorna benämns Fråga D &ll Fråga F och de har också beskrivande underrubriker, på samma sä[ som Fråga A &ll Fråga C i &digare uppgi?/labora&oner. I U2 ska sidorna också s&lsä[as med CSS. I L4 skapas grundstrukturen, i L5 skapas layout och i L6 görs en responsiv design. I denna labora&on (L4) skapar du alltså HTML-filerna och en CSS-fil som ger en grunds&l för dem. Nu skapar du först en mall för sidorna. Denna mall ska också finnas med i din redovisning av uppgi? U2. Skapa en HTML-fil och kalla den template.htm. Strukturera koden i HTML, så a[ du har med följande delar: mall header: e[ sidhuvud med frågans rubrik nav: navigeringslänkar för a[ gå mellan de olika sidorna main: innehåll där en del består av frågans text och en annan del består av di[ svar footer: en sidfot med t.ex. di[ namn och datum. fortsä7ning i övning 2b
2b. Innehåll på sidan För a[ ha något a[ s&lsä[a i de kommande övningarna, lägger du först in en nonsenstext eller "Lorem ipsum"-text: h[p://www.lipsum.com/ header nav main footer h1 för huvudrubrik och h3 för underrubrik. Länkarna för sidorna läggar du i en ul-lista. Ta med länkar för de tre frågorna samt mallen. E[ element (t.ex. sec>on eller div) för frågan. Lägg in e[ id-a[ribut med lämpligt namn i star[aggen. Innehållet ska vara e[ textstycke och en ol-lista med delfrågor. Resten av main ska sedan vara di[ svar, men lägg nu in fem textstycken med "lorem ipsum" och några rubriker. Använd h2 för den första rubriken och h3 för de övriga. Lägg också in en tabell med fem rader. Använd th i den övre raden och td i de övriga. Ta inte med något border-a[ribut i table-taggen. (S&l med kantlinjer ska du sedan göra med CSS.) Lägg in di[ namn och datum. Lägg texten direkt i footer, utan p-element.
3. Skapa en CSS-fil Alla sidor ska s&lsä[as med samma CSS-fil. Skapa en CSS-fil. Lägg in en s&l för body, där du anger en s&l för en bakgrundsfärg. De[a för a[ du enkelt ska kunna se a[ du sedan länkar in CSS-filen korrekt. I HTML-filen (template.htm) lägger du in en link-tagg för a[ ta in CSS-filen. Testa i webbläsaren och se a[ sidan har den bakgrundsfärg du ange[, så a[ du vet a[ CSS-filen länkas in korrekt. body {...} Skapa tre kopior av HTML-filen för fråga D &ll F och namnge filerna så som du namngav dem i dina navigeringslänkar. Testa igen i webbläsaren, för a[ se a[ länkarna i navigeringen fungerar och a[ s&lmallen används på alla sidor. D E F mall
4. Grunds&l I CSS-filen börjar du med en grunds&l för några vanliga element i sidornas kod. body body {...} Lägg t.ex. in s&l för bakgrundsfärg, texjärg och val av typsni[. Begränsa också bredden &ll t.ex. 800 pixlar. h2, h3 h2, h3 {...} Både för rubrikerna h2 och h3, lägger du in en annan texjärg och kursiv text eller annan valfri s&l. Du ska alltså ha en gemensam s&l för h2 och h3. h3 h3 {...} Skapa även en egen s&l för h3 och lägg in en kantlinje ovanför h3-rubrikerna med följande kod för h3: border-top:1px solid #999; padding-top:10px; Både denna s&l och den s&l som du &digare skrev för h2,h3, kommer gälla för h3-elementen. Det blir en kaskad med s&lar som läggs &ll varandra.
5. S&l för sidhuvud Skapa nu en s&l för sidhuvudet. header header {...} Lägg in bilden bg.jpg som bakgrundsbild. Sä[ höjden på header &ll 140px (samma höjd som bilden). Bilden är bredare än sidans innehåll, så lägg även in background-posi>on:center; för a[ centrera bilden. Rubrikerna h1 och h3 i header header h1, header h3 {...} Sä[ padding &ll lämpligt värde (t.ex. 10px) för a[ få e[ litet avstånd från kanten &ll texten. Den s&l du redan har för h3 (från föregående övning) gäller även här. Du får ändra den &digare s&len, så a[ den endast gäller för rubriker i main. main h2, main h3 {...} Lägg där &ll main både före h2 och h3 i den &digare s&len. main h3 {...} Lägg sedan &ll s&l för h1 och h3 i header där du väljer lämplig texjärg och eventuellt annan s&l. För a[ justera avståndet mellan rubrikerna, dvs h1 och h3, sä[er du margin &ll 0. Experimentera sedan med olika värden på padding. Prova först med 0 och öka sedan &ll det värde du vill ha.
6. S&l för sidfot Nu ska du skapa en s&l för sidfoten. footer footer {...} Välj valfri färg på bakgrund och text. Centrera texten med text-align. Välj också lämpligt värde (t.ex. 10px) på padding.
7. S&l för navigering Nu är det dags a[ s&lsä[a navigeringslänkarna. Du ska ändra listan, så a[ det blir en rad med länkar. nav ul nav ul {...} Ta bort punkterna före varje rad. Sä[ padding &ll 0, så a[ inskjutningen i vänsterkanten tas bort. nav ul li nav ul li {...} Ändra display, så a[ alla li-element hamnar in&ll varandra på samma rad. Lägg &ll en marginal i högerkanten för varje li, för a[ få lämpligt avstånd mellan länkarna. nav a nav a {...} Ta bort understrykningen. Lägg in en padding på några pixlar. Lägg in en bakgrundsfärg och texjärg för a:link och a:visited. Lägg in en annan bakgrundsfärg (och eventuellt texjärg) för a:hover och a:ac>ve. nav a:link, nav a:visited {...} nav a:hover, nav a:ac&ve {...}
8. S&l för frågerutan Rutan för frågan ska nu få rundade hörn och en skugga. Referera &ll rutan med hjälp av det id du lagt in i taggen. Lägg in en annan bakgrundsfärg. Lägg &ll en kantlinje, t.ex. en kant på 4px, solid och lite mörkare färg. Lägg &ll rundade hörn med border-radius. Experimentera med olika värden, för a[ få den rundning du vill ha. Lägg också &ll en padding, så a[ inte texten hamnar precis in&ll kanten. Gör rutan smalare och centrera den. Sä[ bredden &ll 80%. Lägg &ll margin:0 auto; för a[ centrera rutan. Det första värdet, 0, är marginal i över- och underkant. Det andra värdet är marginal för vänster- och högerkant, som ska sä[as automa&skt. Därmed centreras rutan. Lägg på en skugga Lägg på en skugga i höger- och underkant med box-shadow. Välj valfria värden på storlek och färg. #id {...} Istället för id skriver du namnet på di7 id-a7ribut.
9. S&l för tabellen Nu ska tabellen s&lsä[as. th, td th, td {...} Börja med a[ ge th och td en kantlinje med border:1px solid #666; Lägg också in e[ lämpligt värde på padding, för a[ få en inre marginal i tabellcellerna. table table {...} För a[ slå ihop cellerna, så det inte blir något avstånd mellan dem, lägger du för table in följande s&l: border-collapse:collapse; tr tr {...} Lägg in s&l för vit bakgrundsfärg, så a[ raderna i tabellen blir vita. th th {...} Lägg in s&l med en annan bakgrundsfärg och texjärg för th. table Lägg också en skugga på table, på samma sä[ som du gjorde för frågerutan i föregående övning. För a[ skuggan under tabellen ska få plats, får du också lägga &ll margin-bo7om, med e[ värde som är lite större än skuggan.
10. Pseudoklasser Det finns olika sä[ a[ välja ut vilka element som en s&l ska gälla för. Då man ange[ en tagg (eller id eller class) kan man också lägga på en pseudoklass. Du har redan använt det i länkarna med :link, etc. Nu ska du också använda en pseudoklass för a[ välja varannan rad i tabellen. Jämna rader i tabellen tr:nth-child(even) {...} Skriv en s&l för tr:nth-child(even) Lägg in en annan bakgrundsfärg i s&len, dvs mellan klamrarna.
11. Lägga &ll innehåll Med pseudoklasserna :before och :aper, kan man lägga &ll e[ innehåll i början eller slutet av e[ element. Det blir alltså före eller e?er det innehåll som finns i elementet i HTML-koden. Lägg &ll tre streck före varje h3-rubrik i main. main h3:before {...} I s&len använder du content, för a[ lägga &ll innehållet. main h3:before {content: "--- ";}
12. Validera CSS-koden För a[ kontrollera a[ CSS-koden stämmer med språkets regler, ska du validera koden. Använd validatorn på h[p://jigsaw.w3.org/css-validator/#validate_by_upload Se &ll a[ du är på fliken för filuppladdning. Dra din CSS-fil &ll rutan i mi[en eller klicka på knappen Bläddra och peka ut din fil. Klicka sedan på knappen Granska. Om koden är korrekt, får du en grön ruta som säger a[ du inte har några fel. I annat fall får du en lista med felmeddelanden. Rä[a i så fall dess fel och validera om, &lls allt är OK. Om du inte fick några felmeddelanden i valideringen, kan du prova med a[ införa något fel i din CSS-kod och validera om. Då ser du hur felmeddelandena kan se ut.
13. Fråga D Garre[s utvecklingsmodell Fråga D ska läggas in och besvaras i den HTML-fil som du skapade för frågan. Delfrågor Två frågor om kravspecifika&on och Garre[s utvecklingsmodell. D D1: I en kravspecifika&on är det vik> a[ kraven skrivs, så a[ de är mätbara. Vad menas med det? Ge e[ exempel på e[ mätbart krav. D2: Beskriv Garre[s modell i en tabell med en rad per plan i modellen. I första kolumnen anger du namn på planet. I den andra kolumnen anger du namn på de delar som finns (dvs namnen som finns på planen i figuren för modellen). I tredje kolumnen ger du en mycket kort beskrivning av vad som görs på planet (en eller två meningar). Då du lagt in frågan och di7 svar på sidan, öppnar du den i webbläsaren och kontrollerar om s>len stämmer eller om du behöver justera något. Dessa frågor är avvägda mot vad du nu också ska arbeta med i uppgi? U3, där du gör olika delar enligt modellen parallellt med U2 och övriga moment i kursen. Se veckoplanen och Gan[- schemat på kursens webbplats. Endast frågorna och dina svar ska finnas på sidan. Övrigt innehåll som du hade i mallen, tar du bort på denna sida. Omfa[ning på D1 ska vara e[ par textstycken, fem &ll &o rader text på webbsidan. Omfa[ning på D2 är tabellen med korta texter i rutorna.