SlideShare a Scribd company logo
1 of 33
Responsiv design,
og litt Bootstrap
Av Morten Bergset, Profundo AS
Morten Bergset
• Jobbet med IT siden 1999
• Frontend Java (J2EE) og Perl
for Logit-Systems i Grimstad
• Frontend ASP.NET og ASP
for Current Software
• ASP.NET og ASP for Netlab
• PHP for Profundo
• Perl og PHP i 10 år i mitt
hobbyfirma, getOnWeb
ProFundo er en servicepartner som
leverer unike kombinasjoner av kompetanse,
tjenester og systemløsninger for innsamlings-
og medlemsorganisasjoner.
Database
PHP Flex Powerbuilder
Web-
server
Citrix
Internett
3 applikasjoner, 1 database
Kunder
Cut the crap!
Skapelsen
• På den første dagen lagde Tim
Berners-Lee html. Alle kunne få
tilgang til informasjonen, og Tim
så det var godt...
• På den andre dagen kom
designerene og ville ha full pixel-
kontroll. Det måtte settes noen
rammer og begrensninger for at
de skulle få “full kontroll”.
• På den tredje dagen kom Steve
Jobs og fullførte korstoget Jeffrey
Zeldman hadde ledet i lang tid.
Responsiv Webdesign
(RWD) – definisjon:
• websites og webapplikasjoner som er lagd for
optimal brukeropplevelse uten zooming og
scrolling både for små og store skjermer
• designet tilpasser seg skjermen med fluid
grids, fleksible bilder og CSS3 media queries
• det bør også optimalisere devicens muligheter
(f.eks. ringe-knapp, og geolocation på mobiler)
• lage fall-back løsninger (f.eks. en flash
illustrasjon for pc vises som et bilde på mobile
devicer)
Hva betyr det for
innholdet?
• Stort sett så gjør man det slik at dersom
det er lite plass så plasseres elementer
under hverandre
• Man kan skjule og vise elementer
basert på skjermbredde, og man kan
flytte på de
• Man kan også justere font størrels,
margin, padding, width osv
Viewport metatag
For at gamle sider skulle se fungere, så antar iOS Safari at siden er 980px
bred, og zoomer ut for å vise alt, og da blir det smått på en telefon…
Noen varianter:
<meta name="viewport" content="width=320">
<meta name="viewport" content="width=device-width">
<meta name="viewport" content="width=device-width, initial-scale=1">
Denne bruker jeg:
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=1" />
Utfordringer med RWD
• page size
• brukere som legger inn store
tekster, lange ord, store bilder, iframes
osv
• eldre IE
• retina skjermer
• header og footer tar alltid ekstra tid
• meny/navigasjon må gjerne ha to
versjoner/visninger
Media queries
• Vi har brukt media queries i mange år
for å gi en utskriftsvennlig side uten å
laste en ny side (fjernet menyer osv,
satt bredden til 100% osv)
• Ny mulighet med media queries er å
styre styling basert på skjermbredde, og
det er her mye av hemligheten til
responsivt design ligger :-)
min-width / max-width?
• It depends…
• Media queries brukes for å gjøre justeringer
• Mobile-first design
• Tradisjonelt PC design
• Jatakk, begge deler, sa Ole Brumm…
Enkelt eksemple
• Standard/fallback:
h1 {font-size: 16px}
• Store skjermer:
@media (min-width: 1100px){
h1 {font-size: 18px}
}
• Små skjermer
@media (max-width: 650px){
h1 {font-size: 14px}
}
Flere eksempler
• @media only screen and (max-width:
480px){...}
• @media screen and (orientation:landscape)
{...}
• @media screen and (min-device-width: 768px)
and (max-device-width: 1024px) and
(orientation: landscape) {... }
• osv. osv...
• KISS - Keep It Simple, Stupid
Utfordringer og løsninger
• Bilder som er for store:
image {max-width: 100%}
• Bredder generelt:
bruk relative verdier (%), men gjerne en
pixelbasert max-width på hele containeren
• For å gi retina skjermer fine ikoner: bruk vektor
grafikk (f.eks. fonter) istedet for bitmaps
• Logo i SVG, med PNG fallback for eldre IE
• Bilder kan være større enn visningen, da blir det
crispy på retina skjerm
Og skal du virkelig
imponere sjefen, så...
Så slenge du på ett par ekstra linjer CSS for
animasjon av CSS endringer (tar seg godt ut på
demo)
#element {
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
Verktøyet er halve jobben...
F.eks. cross-browser bookmarklets
• Vise andre
vindustørrelser i stort
vindu:
http://lab.maltewasserma
nn.com/viewport-resizer/
• Vise vindustørrelsen i
pixler:
http://izilla.com.au/git/izilla
.mq.debugger.bookmarkl
et.html
Noen scripts for eldre
IE<!--[if lt IE 9]>
<script
src="//html5shim.googlecode.com/svn/trunk/
html5.js"></script>
<script src="js/selectivizr-min.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
Flere scripts å
inkludere
• http://fittextjs.com/
Optimalt stor tekst
• http://fitvidsjs.com/
Inkludere youtube etc iframes som
beholder størrelsesforholdet
• http://www.woothemes.com/flexslider/
En responsiv slider som støtter touch
og piltaster, kan brukes til så mangt...
• http://fooplugins.com/footable-demos/
Noen ganger må vi legge
på litt jQuery magi…
function resized(){
if($("body").width() < 768)
$("aside #bedrift").appendTo($("#bli"))
else
$("#bli #bedrift").appendTo($("aside"))
}
$(window).on("resize", function(){resized()});
resized();
Google Analytics
har tallene...
Gridd og rammeverk
• For oss utviklere så er det fantastisk å
forholde seg til et gridd/rammeverk
• 960.gs var lenge det foretrukne griddet
• Bootstrap er et rammverk som baserer
sitt gridd på 960.gs, men det har så mye
mer enn bare et gridd :-)
• Foundation er Bootstrap sitt beste
alternativ, det er langt på vei likt
Bootstrap
• Det er CSS og JavaScript/jQuery for vanlige
elementer:
grid, tabell, tabs, buttons, meny, modale vinduer
osv.
• Normalizing og litt styling av basic html
elementer
• Elementer er basert på klasser, og fungerer
derfor fint til alle serverside løsninger :-)
• getbootstrap.com
bootstrapcdn.com
• Paul Irish gjorde en test og fant ut at siste
Bootstrap er dobbelt så rask å rendre!
Fordel med klassene
• Bootstrap sine klasser gir samme fordel
som namingconvensions ellers.
• Når man programmerer, så trenger man
ikke vite helt nøyaktig hvordan ting blir
seende ut, men Bootstrap sine klasser
gjør det lettere å se for seg hvordan
koden vil se ut i en browser fordi f.eks.
«well» har et definert uttrykk (selv om
kanskje et theme eller en designer har
gjort om litt på standard visningen
Moduler og gjenbruk
av kode
Med Bootstrap sine klasser og responsivt
design, så har vi et godt grunnlag for å
lage snippets/moduler som lett kan
kopieres/importeres inn i andre prosjekter
Dette er alt du trenger:
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css"
rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
( // er for at det skal virke med https - dersom det trengs, og ellers bruke raskere http )
wrapbootstrap.com
bootswatch.com
Har veldig mange themes basert på Bootstrap til
en billig penge. Disse kan enten være et godt
utgangspunkt, eller ferdig arbeid :-)
Demo!!!

More Related Content

Viewers also liked (11)

KristiansandPHP meetup 6
KristiansandPHP meetup 6KristiansandPHP meetup 6
KristiansandPHP meetup 6
 
Job evaluation.
Job evaluation.Job evaluation.
Job evaluation.
 
0720 abc seminar
0720 abc seminar0720 abc seminar
0720 abc seminar
 
Kristiansand php meeting #1
Kristiansand php meeting #1Kristiansand php meeting #1
Kristiansand php meeting #1
 
Laravel Spark, and Twig
Laravel Spark, and TwigLaravel Spark, and Twig
Laravel Spark, and Twig
 
Meetup 9 i KristansandPHP
Meetup 9 i KristansandPHPMeetup 9 i KristansandPHP
Meetup 9 i KristansandPHP
 
Agriculture in india 2
Agriculture  in  india 2Agriculture  in  india 2
Agriculture in india 2
 
Teknik persidangan.ppt
Teknik persidangan.pptTeknik persidangan.ppt
Teknik persidangan.ppt
 
Savings and investment
Savings and investmentSavings and investment
Savings and investment
 
Impact factor of journals
Impact factor of journalsImpact factor of journals
Impact factor of journals
 
Unemployment in india
Unemployment in indiaUnemployment in india
Unemployment in india
 

Similar to Responsiv design og Bootstrap 3

Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013
CoreTrek
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teori
Dag Tjemsland
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
Thor Henning Hetland
 
Forvaltning av raster
Forvaltning av rasterForvaltning av raster
Forvaltning av raster
Geodata AS
 
The Client Strikes Back
The Client Strikes BackThe Client Strikes Back
The Client Strikes Back
Magnus Green
 
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
Friprogsenteret
 
Objektorientering og design av kode
Objektorientering og design av kodeObjektorientering og design av kode
Objektorientering og design av kode
Rune Sundling
 

Similar to Responsiv design og Bootstrap 3 (20)

Rwd seminar 2013
Rwd seminar 2013Rwd seminar 2013
Rwd seminar 2013
 
Responsive omegadrupalcamposlo19.11.2011
Responsive omegadrupalcamposlo19.11.2011Responsive omegadrupalcamposlo19.11.2011
Responsive omegadrupalcamposlo19.11.2011
 
HTML5 - en int teori
HTML5 - en int teoriHTML5 - en int teori
HTML5 - en int teori
 
Kryssplatform mobilutvikling
Kryssplatform mobilutviklingKryssplatform mobilutvikling
Kryssplatform mobilutvikling
 
Kan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekterKan vi skape mye mere verdi i softwareporosjekter
Kan vi skape mye mere verdi i softwareporosjekter
 
Forvaltning av raster
Forvaltning av rasterForvaltning av raster
Forvaltning av raster
 
Blazor - en kjapp intro
Blazor - en kjapp introBlazor - en kjapp intro
Blazor - en kjapp intro
 
OOCSS e ælsk
OOCSS e ælskOOCSS e ælsk
OOCSS e ælsk
 
Core trek 2014
Core trek 2014Core trek 2014
Core trek 2014
 
The Client Strikes Back
The Client Strikes BackThe Client Strikes Back
The Client Strikes Back
 
Kundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublishKundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublish
 
Aws på kartet - 2
Aws på kartet - 2Aws på kartet - 2
Aws på kartet - 2
 
Core trek 2015
Core trek 2015Core trek 2015
Core trek 2015
 
Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3
 
Windows Virtual Desktop
Windows Virtual DesktopWindows Virtual Desktop
Windows Virtual Desktop
 
Wondercode fra InCreo
Wondercode fra InCreoWondercode fra InCreo
Wondercode fra InCreo
 
Bbs Tjueprosent Nosql
Bbs Tjueprosent NosqlBbs Tjueprosent Nosql
Bbs Tjueprosent Nosql
 
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
 
Objektorientering og design av kode
Objektorientering og design av kodeObjektorientering og design av kode
Objektorientering og design av kode
 
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og SolrPresentasjon av Newsfront. Case study med Drupal, Angular og Solr
Presentasjon av Newsfront. Case study med Drupal, Angular og Solr
 

Responsiv design og Bootstrap 3

  • 1. Responsiv design, og litt Bootstrap Av Morten Bergset, Profundo AS
  • 2. Morten Bergset • Jobbet med IT siden 1999 • Frontend Java (J2EE) og Perl for Logit-Systems i Grimstad • Frontend ASP.NET og ASP for Current Software • ASP.NET og ASP for Netlab • PHP for Profundo • Perl og PHP i 10 år i mitt hobbyfirma, getOnWeb
  • 3. ProFundo er en servicepartner som leverer unike kombinasjoner av kompetanse, tjenester og systemløsninger for innsamlings- og medlemsorganisasjoner.
  • 7. Skapelsen • På den første dagen lagde Tim Berners-Lee html. Alle kunne få tilgang til informasjonen, og Tim så det var godt... • På den andre dagen kom designerene og ville ha full pixel- kontroll. Det måtte settes noen rammer og begrensninger for at de skulle få “full kontroll”. • På den tredje dagen kom Steve Jobs og fullførte korstoget Jeffrey Zeldman hadde ledet i lang tid.
  • 8. Responsiv Webdesign (RWD) – definisjon: • websites og webapplikasjoner som er lagd for optimal brukeropplevelse uten zooming og scrolling både for små og store skjermer • designet tilpasser seg skjermen med fluid grids, fleksible bilder og CSS3 media queries • det bør også optimalisere devicens muligheter (f.eks. ringe-knapp, og geolocation på mobiler) • lage fall-back løsninger (f.eks. en flash illustrasjon for pc vises som et bilde på mobile devicer)
  • 9. Hva betyr det for innholdet? • Stort sett så gjør man det slik at dersom det er lite plass så plasseres elementer under hverandre • Man kan skjule og vise elementer basert på skjermbredde, og man kan flytte på de • Man kan også justere font størrels, margin, padding, width osv
  • 10. Viewport metatag For at gamle sider skulle se fungere, så antar iOS Safari at siden er 980px bred, og zoomer ut for å vise alt, og da blir det smått på en telefon… Noen varianter: <meta name="viewport" content="width=320"> <meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width, initial-scale=1"> Denne bruker jeg: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
  • 11. Utfordringer med RWD • page size • brukere som legger inn store tekster, lange ord, store bilder, iframes osv • eldre IE • retina skjermer • header og footer tar alltid ekstra tid • meny/navigasjon må gjerne ha to versjoner/visninger
  • 12. Media queries • Vi har brukt media queries i mange år for å gi en utskriftsvennlig side uten å laste en ny side (fjernet menyer osv, satt bredden til 100% osv) • Ny mulighet med media queries er å styre styling basert på skjermbredde, og det er her mye av hemligheten til responsivt design ligger :-)
  • 13. min-width / max-width? • It depends… • Media queries brukes for å gjøre justeringer • Mobile-first design • Tradisjonelt PC design • Jatakk, begge deler, sa Ole Brumm…
  • 14. Enkelt eksemple • Standard/fallback: h1 {font-size: 16px} • Store skjermer: @media (min-width: 1100px){ h1 {font-size: 18px} } • Små skjermer @media (max-width: 650px){ h1 {font-size: 14px} }
  • 15. Flere eksempler • @media only screen and (max-width: 480px){...} • @media screen and (orientation:landscape) {...} • @media screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) {... } • osv. osv... • KISS - Keep It Simple, Stupid
  • 16. Utfordringer og løsninger • Bilder som er for store: image {max-width: 100%} • Bredder generelt: bruk relative verdier (%), men gjerne en pixelbasert max-width på hele containeren • For å gi retina skjermer fine ikoner: bruk vektor grafikk (f.eks. fonter) istedet for bitmaps • Logo i SVG, med PNG fallback for eldre IE • Bilder kan være større enn visningen, da blir det crispy på retina skjerm
  • 17. Og skal du virkelig imponere sjefen, så... Så slenge du på ett par ekstra linjer CSS for animasjon av CSS endringer (tar seg godt ut på demo) #element { -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; }
  • 18. Verktøyet er halve jobben... F.eks. cross-browser bookmarklets • Vise andre vindustørrelser i stort vindu: http://lab.maltewasserma nn.com/viewport-resizer/ • Vise vindustørrelsen i pixler: http://izilla.com.au/git/izilla .mq.debugger.bookmarkl et.html
  • 19. Noen scripts for eldre IE<!--[if lt IE 9]> <script src="//html5shim.googlecode.com/svn/trunk/ html5.js"></script> <script src="js/selectivizr-min.js"></script> <script src="js/respond.min.js"></script> <![endif]-->
  • 20. Flere scripts å inkludere • http://fittextjs.com/ Optimalt stor tekst • http://fitvidsjs.com/ Inkludere youtube etc iframes som beholder størrelsesforholdet • http://www.woothemes.com/flexslider/ En responsiv slider som støtter touch og piltaster, kan brukes til så mangt... • http://fooplugins.com/footable-demos/
  • 21. Noen ganger må vi legge på litt jQuery magi… function resized(){ if($("body").width() < 768) $("aside #bedrift").appendTo($("#bli")) else $("#bli #bedrift").appendTo($("aside")) } $(window).on("resize", function(){resized()}); resized();
  • 23.
  • 24. Gridd og rammeverk • For oss utviklere så er det fantastisk å forholde seg til et gridd/rammeverk • 960.gs var lenge det foretrukne griddet • Bootstrap er et rammverk som baserer sitt gridd på 960.gs, men det har så mye mer enn bare et gridd :-) • Foundation er Bootstrap sitt beste alternativ, det er langt på vei likt
  • 25. Bootstrap • Det er CSS og JavaScript/jQuery for vanlige elementer: grid, tabell, tabs, buttons, meny, modale vinduer osv. • Normalizing og litt styling av basic html elementer • Elementer er basert på klasser, og fungerer derfor fint til alle serverside løsninger :-) • getbootstrap.com bootstrapcdn.com • Paul Irish gjorde en test og fant ut at siste Bootstrap er dobbelt så rask å rendre!
  • 26.
  • 27.
  • 28.
  • 29. Fordel med klassene • Bootstrap sine klasser gir samme fordel som namingconvensions ellers. • Når man programmerer, så trenger man ikke vite helt nøyaktig hvordan ting blir seende ut, men Bootstrap sine klasser gjør det lettere å se for seg hvordan koden vil se ut i en browser fordi f.eks. «well» har et definert uttrykk (selv om kanskje et theme eller en designer har gjort om litt på standard visningen
  • 30. Moduler og gjenbruk av kode Med Bootstrap sine klasser og responsivt design, så har vi et godt grunnlag for å lage snippets/moduler som lett kan kopieres/importeres inn i andre prosjekter
  • 31. Dette er alt du trenger: <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"> <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css" rel="stylesheet"> <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet"> <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet"> <script src="//code.jquery.com/jquery-1.10.2.min.js"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> ( // er for at det skal virke med https - dersom det trengs, og ellers bruke raskere http )
  • 32. wrapbootstrap.com bootswatch.com Har veldig mange themes basert på Bootstrap til en billig penge. Disse kan enten være et godt utgangspunkt, eller ferdig arbeid :-)