Centralt innehåll
- Webben som plattform för applikationer av olika slag.
- Fördjupning i märkspråk där det huvudsakliga innehållet är standarderna för HTML och CSS med särskilt fokus på responsiv design.
- Riktlinjer för god praxis inom webbutveckling.
- Terminologi inom området webbutveckling.
Fakta
1. Responsiv webbdesign
1.1 Surf-statistik
I hela världen är det fler personer som surfar från mobilen jämfört med datorn, se statistik från statcounter.I Sverige använder 85% av befolkningen internet i mobil och 76% av befolkningen gör det dagligen, enligt en undersökning från Internet Stiftelsen i Sverige.
På svenska e-handelsplatser använder 67% av alla besökare mobilen, enligt en undersökning från e-handel.se.
1.2 Utmaningar på den mobila webben
Mobila enheter, mobiler och plattor, är den vanligaste plattformen för att surfa på webben idag. Det är utan tvekan viktigt att designa bra webbplatser och appar anpassade för mobiler. Men det finns en del utmaningar:
- Mobiler har små skärmar, svårt att göra bra layout & design.
- Bandbredden kan vara opålitlig, kan tappa kontakten med internet ibland.
- Inmatning är inte lika lätt på en liten skärm jämfört med ett tangentbord.
1.2.1 Några riktlinjer för en mobil webbplats
- Undvik att försöka få plats med samma mängd data på en mobil- som på en datorskärm. Det som ser bra ut på en stor skärm blir svårare att urskilja på en mobilskärm och gör att mobilgränssnittet känns svårt för användaren.
- Försök att begränsa användarinteraktion till knappar, checkboxar och alternativknappar. Det är besvärligt att fylla i textfält på en mobil.
- Texten ska vara läsbar utan att zooma.
- Placera länkar på sådant avstånd att inte användaren klicka fel av misstag.
- Innehållet ska vara åtkomligt utan att scrolla i sidled eller zooma.
- Använd inte mer och större bilder än nödvändigt. De bilder som finns ska vara komprimerade.
1.2.2 Mobile First
Mobile First betyder att man i sin webbutveckling börjar med att designa och utveckla
för den mobila upplevelsen först, istället för det som var vanligt förut, dvs att mobila sidor gjordes som nedskalade versioner av
dator-designen.
Mobile First bygger på två idéer:
- Mobilt är viktigare än desktop eftersom fler surfar på mobilen.
- Det är lättare att designa för mobilen först och skala upp än tvärtom.
Mobile-first index innebär att Google indexerar (=rankar) webbplatser och appar utifrån hur väl
de fungerar i mobilen. Det innebär alltså att ju bättre en webbplats fungerar i mobilen desto bättre
google-ranking (SEO) får sidan.
1.3 Tre kategorier
Man brukar dela in mobilappar i 3 olika kategorier:
- Native – En app utvecklad speciellt för det operativsystem som mobilen har. En fördel är att den ofta har bra prestanda eftersom är anpassad för hårdvaran på mobilen. En native-app kan också utnyttja all hårdvara som finns i mobilen, som kamera, mikrofon, gps etc. Den stora nackdelen är att varje operativsystem/enhet (Android, iPhone) kräver en egen utvecklad applikation. Native-appar installeras för Android-mobiler från Google Play och från iPhone från App Store.
- Webb – En webbapplikation använder webbtekniker som HTML, CSS och Javascript. Själva appen använder mobilens webbläsare. Den stora fördelen med en webbapplikation är att den fungerar på alla typer av mobiler som har en webbläsare. Man behöver alltså inte utveckla olika appar för att det ska fungera på Android-mobiler och iPhone. Med responsiv webbdesign kan samma webbsida användas både på dator, surfplatta och mobil. En nackdel är att man inte kommer åt all hårdvara på mobilen och har ofta sämre prestanda än native-appar.
- Hybrid – En hybridapp är en kombination av webbapp och native-app. Den hybrida appen har till en viss del tillgång till hårdvarufunktionalitet specifikt för den mobil som använder applikationen. I övrigt fungerar hybridapplikationen som en webbapplikation. Man använder HTML, CSS, Javascript och generella kod-bibliotek. De kompileras sedan för att fungera på olika operativsystem/enheter. Se t.ex. Apache Cordova (tidigare PhoneGap)
2. Webb-appar
I den här kursen kommer vi att göra webbappar, som ska fungera på enheter med olika skärmstorlek, t.ex. TV:n, dataskärmar, mobiler och surfplattor. Hur kan webbutvecklare se till att en webbplats är snygg och läsbar på alla enheter, oavsett skärmstorlek?
Responsiv webbdesign är en webbplats förmåga att ändra storlek och organisera om innehållet baserat på:
- Storleken på webbläsarfönstret.
- Storleken på annat innehåll på webbplatsen.
- Skalbara texter och bilder.
Se exempel på www.bostonglobe.com
Vad behöver en webbutvecklare använda för göra för att skapa responsiva webbsidor?
- Relativa måttenheter (t.ex. %, rem, em
).
- Media queries för att ändra utseende (layout) beroende på skärmstorlek.
Relativa mått är bättre än absoluta mått, eftersom de tillåter att
proportionerna på en webbplats är samma oavsett skärmstorlek eller layout.
Även om relativa mått ger responsiv design kan element på en webbplats bli felaktiga/fula
när de blir för små eller stora, men det går att begränsa hur bred ett element kan vara.
Minsta och maximala bredden på ett element kan ställas in med min-width och max-width.
min-width
ger en minsta bredd för ett element.
max-width
ger en maximal bredd för ett element.
Media queries används för att ändra utseende (layout) på en sida beroende på skärmstorleken.
<!-- Lägg till följande meta-tagg i HTML-koden -->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
/* Lägg till följande i CSS-koden */
/* Extra small devices (phones, 600px and down) */
@media screen and (max-width: 600px)
{
}
/* Small devices (tablets and large phones, 600px and up) */
@media screen and (min-width: 600px) and (max-width: 991px)
{
}
/* Large devices (laptops/desktops, 992px and up) */
@media screen and (min-width: 992px)
{
}
Responsiv webbdesign är grunden till en bra mobilapp. Numera ska man inte tänka mobile first eller desktop first utan målet är att få en bra design och användarupplevelse oavsett enhet och skärmstorlek.
3. CSS-Grids
CSS-Grids underlättar designen av responsiva layouter.
En bra film om CSS-Grids är CSS-grids introduction.
CSS Grids är
- relativt nytt (mars 2017), men de senaste versionerna av webbläsarna har stöd för CSS Grids.
- en metod för att bygga upp en layout med CSS.
- bra för att strukturera webbsidor med både rader och kolumner (tvådimensionella element).
CSS Grids kan
- användas med en ny måttenhet för bredd och höjd, nämligen fraction (fr), som är en del av helheten.
- döpa rader och kolumner, för att lättare hålla isär dem.
- skapa layouter helt oberoende av ordningen av element i HTML, vilket gör att m.h.a media queries kan layouten se väldigt
olika ut för enheter med olika skärmstorlek.
CSS Grids tillsammans med media queries ger förutsättningar för att gör en bra responsiv webbdesign.
Exempel på kod för CSS-Grids
<!-- HTML -->
<div id="content">
<section id="skolverket">
</section>
<section id="innehall">
</section>
<section id="begrepp">
</section>
<section id="links">
</section>
<section id="ovning">
</section>
<section id="inlupp">
</section>
<section id="fordjupning">
</section>
</div>
/* CSS */
section#skolverket {
grid-area: skolverket;
}
section#innehall {
grid-area: innehall;
}
section#begrepp {
grid-area: begrepp;
}
section#links {
grid-area: links;
}
section#ovning {
grid-area: ovning;
}
section#inlupp {
grid-area: inlupp;
}
section#fordjupning {
grid-area: fordjupning;
}
#content {
display: grid;
padding-top: 6rem;
padding-bottom: 1rem;
padding-right: 1rem;
padding-left: 1rem;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-auto-rows: minmax(50px, auto);
grid-gap: 1rem;
margin: 0 auto;
grid-template-areas:
"innehall innehall innehall links"
"ovning ovning begrepp begrepp"
"inlupp inlupp fordjupning fordjupning"
"skolverket skolverket skolverket skolverket";
}
Begrepp
Mobile first: Webbutveckling som börjar med att designa och utveckla för mobilen.
Mobile-first index: Google indexerar (=rankar) webbplatser och appar utifrån hur väl de fungerar i mobilen.
Native app: App utvecklad speciellt för det operativsystem som mobilen har.
Webb app: App som använder webbteknikerna HTML, CSS och Javascript och körs i webbläsaren.
Hybrid app: App som är en kombination av webb-app och native-app.
Media queries: Används i CSS för att ändra utseende (layout) på en sida beroende på skärmstorleken.
CSS Grid: Teknik som underlättar designen av responsiva layouter.
Responsiv webbdesign: Webbdesign som tillåter att layouten förändras beroende på skärmstorlek och skärmupplösning,
em Enhet som sätter textstorleken i förhållande till textstorleken för förälder-elementet.
rem Enhet som sätter textstorleken i förhållande till textstorleken för rotelementet . rem kan också användas för att sätta storlek på andra element som beror på textstorleken.
% Enhet som används för att sätta storleken på värden som width, height, border, padding och margin.
fr Enhet som används för att sätta storleken på element i CSS-Grids.
Länkar
w3schools: Responsive web design
Test: hur responsiv är en webbsida
Film
Övningar
Inlämningsuppgift