3. Mål för idag
• Förstå vad en webbläsare gör
• Kunna bygga en enkel HTML-sida
• Förstå klasser och id:n
• Kunna style:a HTML-sidan med CSS
• Förstå selectors
• Kunna använda Bootstrap för att göra några enkla layouter
• Ha fyra sidor för frågesyportsajten redo!
7. Webbläsare är olika
• Olika webbläsare på dator och tablet/telefon
• Olika webbläsare på olika operativsystem
• Olika versioner av webbläsare stödjer olika
funktioner
8. Hur hanterar vi det?
• Testa i olika webbläsare (installera alla de stora)
• Försök följa standarder, specifikationer…
• Använd en “reset”!
27. Hur gör man ”layout”?
• Finns massor av olika metoder
• Beror på vilka webbläsare man måste stödja:
http://caniuse.com/#search=layout
• Mitt tips: Bootstrap
28. Bootstrap
• Utvecklat av Twitter
• ”Förenkla för folk som inte kan design”
• Hundratals färdiga CSS-regler
• Sätt rätt klass => Voilá! Allt fungerar
• (Automatiskt mobilläge inkluderat)
29. Basic template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come
*after* these tags -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello, world!</h1>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
#2:Setup klart! Nu kan vi börjar jobba med de program vi lärde oss igår.
#3:Nu kan vi börjar jobba med de program vi lärde oss igår.
#5:Idag ska vi fokusera helt på webbläsaren, imorgon blir det webbservern
Istället kan man nämligen surfa mot hårddisken direkt med file://-adresser
Onsdag och Torsdag ska vi sätta upp en webbserver på din dator och surfa mot den istället
Fredag ska vi flytta webbservern ut på internet så alla kan komma åt den
#6:Notera: Generell statistik över hela världen, ej mobil
Olika versioner av Internet Explorer, men alla Chrome och Firefox tillsammans.
#8:Stor skillnad mot när vi programmerar Python senare: Saker kommer fungera i en webbläsare men inte i en annan
#9:Testa: Problem: Internet Explorer går inte att köra på Mac (men tvärtom fungerar) Lösning: Installera en virtuell dator med windows och testa IE så
Std: Webbläsarna byggd för att klara trasig kod, försöker laga själv och gissa vad som menas. Webbläsare gissar olika...
Ofta finns det flera sätt att lösa ett problem, försök hitta det som är minst “hackigt”
Reset: Använd en “reset”, en samling CSS-regler som “nollställer” skillnader så att allt default ser så lika ut från början
#10:Precis allt som jag säger går att googla sig till, flera sajter tävlar om att ha bästa referensverken, Googla mycket, så fort ni undrar över minsta lilla!
Vi behöver två byggstenar, HTML och CSS. Vi börjar med HTML.
#11:HTML5, bakåtkompatibel med alla tidigare versioner i allt väsentligt
#12:Sparas som filnamn.html
Får färgmarkering i Sublime Text så att det blir lättare att se strukturen
1. Texten som sidan ska innehålla, t.ex. alla rubriker, all text, alla frågor och svar…
2. Ett sätt att markera ut vad som är vad (likt Words formatmallar)
Taggar i andra taggar, lite som en trädstruktur, en hierarki…
Taggar kan ha attribut, som är olika per tagg. <a href=”http://example.com”>Example</a>
Skillnad på olika taggar, vissa gör radbrytning (block), vissa gör det inte (inline)…
#13:I HTML (men inte i Python senare!): Radbryt och använd space som ni vill, och tycker det blir läsbart
#14:<!doctype html> - För att säga att detta är “modern” html:
<html><head><body> - En uppdelning i innehållet, metadata om innehållet
<title> - Sidans titel som syns i tabben i webbläsaren, och på Google när man söker
<meta charset=”utf-8”> - För att säga att vi vill kunna använda svenska tecken
<h1> - Rubrik, finns 6 nivåer att välja på
<p> - En paragraf
<a> - en länk, tar ett attribut som säger var länken går, och innehåller länktexten
#15:Två speciella attribut som kan användas på alla taggar: class och id
”my_thing” kan vara precis vad som helst.
Du kan ha många div:ar på sidan, men bara några med klass ”my_thing”
Du kan ha många div:ar på sidan, men bara en med id ”header”
Med CSS senare: ”Gör alla divar med klass ”my_thing” blåa.”
#17:Går att göra på alla sajter ni är inne på, va nyfikna och kolla hur de är gjorda…
Kolla på varandras när ni är live!
#19:Med CSS sätter man upp regler för hur HTML-taggarna ska se ut
Det krävs alltid HTML, CSS är helt värdelös i sig själv (Tänk senap!)
#20:body: grå bakgrund (# RÖD GRÖN BLÅ) 00 -> 0, FF -> 256
12 punkters text, radavstånd 1.4 gånger textstorleken, tre typsnitt
max-bredden på sidan 600px (men kan bli mindre om webbläsaren är mindre
hela sidan ska vara centrerad
h1: Hot pink
a: Ännu hetare pink
p: en border längst ner och lite mellanrum mellan border och text
#21:Varje HTML-tagg är en fyrkanter, som man kan anpassa utseendet på
Höjd, bredd, marginaler, border, …
Färger, typsnitt, dropshadow, bakgrundsbild, …
Flera kolumner i bredd, beteende när sidan ändras...
Kort sagt, allt som man kan ställa in i Word går också att göra med CSS, plus lite till...
#24:Radbryt och använd space som ni vill, och tycker det blir läsbart
Bra att Googla på ”CSS property X”
#25:tag: relativt sällan eftersom det finns så få taggar, ofta återanvända samma tag
klass: Vanligast. Använd specifika namn som pratar om innehållet. Poängen med att ha utseendet i en annan fil är att utseendet ska kunna ändras utan att innehållet gör det. http://csszengarden.com/ - Använd inte klasser som “bold”, “blue”, osv...
id: fungerar precis som klass, men kan bara finnas en av varje klass. Använd om du vet att det bara kommer att finnas en per sida, alltid.
#26:Finns flera men används sällan…
Har lagt till ett litet spel för att träna på dessa som extrauppgift i tutorialen.
#27:Även helt utan CSS fick vi ett utseende
Alla webbläsare kommer med en default-CSS
Tyvärr skiljer defaultstylesen lite mellan olika webbläsare
För att slippa allt krångel som det för med sig, använd CSS-“reset”
(Sidohistoria: Började användas först av Eric Meyer, bloggade tidigt om CSS. Erics dotter Rebecca gick bort i cancer, 6 år gammal, och till minne av henne bestämde sig arbetsgruppen för CSS (som han var med i) att döpa en färg ”rebeccapurple”)
#28:Från början var HTML + CSS bara till för att publicera forskningsrapporter på CERN, ingen behövde göra avancerade layouter med bilder och kolumner
Layoutstöd har kommit till senare… och håller fortfarande på att läggas tid
Stor skillnad mellan Photoshop och CSS: Vi vet inte bredden och höjden eller hur mycket plats innehållet kommer att ta => layouten måste kunna anpassa sig
display: table; alla moderna webbläsare, IE8+
#30:Bootstraps sajt, Getting started, ”Basic template”
Nästan lite skrämmande om man är nybörjare…
Låt oss ta bort kommentarerna… <!— —>
#31:Vi vill köra senaste versionen av HTML
<html> Här börjar sidan, språket är engelska
<head> Här kommer metadata, encoding, senaste IE-läget, anpassad för mobilen. Sidans titel
<link> Vi ska använda oss av en massa befintliga CSS-regler
<body> Hela sidans innehåll. <h1> en rubrik
Två <script>, igen befintlig kod. Javascript går vi inte igenom. Bootstraps plugins för att göra t.ex. dropdowns om man vill ha det.
#32:Tänk i rader och kolumner:
Tre rader
Mittenraden har tre kolumner
Sätt inte höjden på kolumnerna själv, låt innehållet styra
#33:Vore det inte fantastiskt om allt detta kunde göras automatiskt? :)
#35:Tre rader.
Ytterst en klass som heter ”container”, måste alltid finnas där
Tre div:ar med klass ”row”, det som ska ligga på den raden inuti.
#40:Ni känner igen upplägget, enda skillnaden är klassnamnen…
Ytterst en div med klass ”row”. Samma row som vi använde nyss
Innanför klass ”col” (kolumn), ”md” (medium), 4 (4 tolftedelar)
#41:970 pixlar bred, bra standardbredd som fungerar nästan överallt
#42:Hela sajten börjar lite smalare.
Bonus:
Om man kör medium, men det inte finns plats, så byter den automatiskt till small
Om man kör small men den inte får plats, byter den till mobilvy automatiskt
#44:Texten i rad 1 går hela vägen ut till kanten.
Tips: Se till att all text ligger i en kolumn.
Lägg till en extra kolumn som tar hela bredden.
#46:Voilá!
Då är det dags för tutorials.
HTML & CSS från scratch
Bootstrap
Bygga era fyra sidor för quiz-sajten.
#47:Påminnelse: Fyra sidor. Första en lista med olika frågesporter man kan välja mellan.