Het grid van het vorige hoofdstuk heeft een vaste breedte- 960px - en is daarom alleen geschikt voor een laptop of pc. Het grid is niet geschikt voor andere devices. Met het toenemend aantal smartphones en tablets is het ontwikkelen van een 'responsive of adaptive websites/apps een must.
‘Responsive’ betekent vrij vertaald ‘reactief’, maar waar reageert zo’n reactieve website nu eigenlijk op? Of je een responsive website nu bekijkt op een pc, tablet of smartphone; de website past zich aan het type apparaat en met name het schermformaat waarmee je de site bezoekt.
Informatie wordt zo ingedeeld dat voor iedere bezoeker de optimale gebruikservaring wordt gecreëerd. Teksten, afbeeldingen en video’s worden geschaald en zijn hierdoor altijd goed zichtbaar. Zelfs knoppen en navigatie-elementen passen zich aan, waardoor deze optimaal te bedienen zijn.
Een responsive webdesign heeft de volgende kenmerken:
Een responsive webdesign past zich niet alleen aan de schermgrootte aan, maar gebruikt ook scripts om te herkennen met welk apparaat de site bezocht wordt. De inhoud en en de functionaliteit wordt bepaalt door bijvoorbeeld de schermresolutie (retina) en/of de snelheid van de internetverbinding.
Om een website echt responsive te maken, kijk je niet alleen naar het schermformaat. Belangrijk is ook te kijken naar welke devices, hoe en waar de mensen de devices gebruiken.
Staat de bezoeker met een smartphone in een winkel? Dan is de kans groot dat hij concrete productinformatie zoekt, zoals de prijs. Of zit hij ontspannen op de bank met een iPad? Of is hij actief op zoek met z'n laptop?
Een responsive design zorgt ervoor dat je website optimaal gebruik maakt van de kenmerken van het desbetreffende device.
Touchscreens bedien je met vingers. Die zijn groter en minder precies dan een cursor. Een smart-tv bedien je met een afstandsbediening. Voor een laptop en pc gebruik je een toetsenbord en een muis.
Mobiele apparaten hebben vaak tragere verbindingen. Een smartphone kent verschillende toetsenborden voor het invullen van e-mailadressen en telefoonnummers.
Er zijn verschillende methodes waarop je een app of website geschikt kan maken voor de verschillende devices:
Bij gebruik van een fluid grid past de kolombreedte zich automatisch aan aan het schermformaat van het device. Hierbij zijn de kolommen van het grid niet een vast aantal pixels breed, maar zijn een percentage van het scherm.
De vorige css zorgt voor een fluid design. De kolommen passen zich aan, het aantal kolommen niet. Bij een adaptive design maak je breekpunten. Bij een bepaalde schermgrootte worden er minder kolommen weergegeven en soms ook andere content.
Hiervoor gebruik je mediaqueries. Met mediaqueries koppel je verschillende css-regels en bestanden aan een pagina. Welke css-regels er aangesproken worden, is afhankelijk van de schermgrootte.
Oefeningen 3
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>responsive design</title>
<link href="css/basis.css" rel="stylesheet" type="text/css">
<link href="mediaquery.css" rel="stylesheet" type="text/css">
</head><body>
<div id="kleur">Andere kleurtjes</div>
</body>
</html>
Met de code @media screen geef je aan dat deze stijlregels gelden voor weergave op het scherm. Je kunt zo ook een stijl maken die geldt voor weergave voor de printer door gebruik te maken van de code @media print.
Value | Description |
---|---|
width | Specifies the width of the targeted display area. "min-" and "max-" prefixes can be used. Example: media="screen and (min-width:500px)" |
height | Specifies the height of the targeted display area. "min-" and "max-" prefixes can be used. Example: media="screen and (max-height:700px)" |
device-width | Specifies the width of the target display/paper. "min-" and "max-" prefixes can be used. Example: media="screen and (device-width:500px)" |
device-height | Specifies the height of the target display/paper. "min-" and "max-" prefixes can be used. Example: media="screen and (device-height:500px)" |
orientation | Specifies the orientation of the target display/paper. Possible values: "portrait" or "landscape" Example: media="all and (orientation: landscape)" |
Met deze regels geef je aan dat de stijlregels gelden voor een schermbreedte tussen de 400 en de 859px.
Responsive design is een design waarbij vloeiend schalende kolommen gebruikt worden met breekpunten gemaakt met mediaquery's.
Je kunt dit zelf bouwen, maar je kunt ook gebruik amken van een kant- en klare framework. Er zijn veel handige frameworks te vinden voor een responsive grid die allemaal gebaseerd zijn op het 12 koloms 960 grid. Op deze website staat de top 10 frameworks. De bekendste frameworks zijn:
Ook voor Wordpress zijn responsive templates te dowloaden.
Deze frameworks bieden naast een responsive grid, ook veel css-regels/bestanden voor navigatie, containers, enz. Dit betekent wel dat je veel code krijgt die je niet gebruikt. Hierdoor worden je bestanden groter. Dit is een bezwaar bij mobile devices. De frameworks zijn wel heel geschikt wanneer je snel een aanklikbaar prototype wilt maken.
Een mobiele website is een aparte website voor smartphones op een los subdomein, waarnaar de mobiele gebruikers verwezen worden. Je kunt een mobiele website maken en plaatsen op een subdomein (m.voorbeeld.nl, mobiel.voorbeeld.nl) of een directory (www.voorbeeld.nl/m/).
De desktop- én mobiele site beginnen met het uitlezen van de schermgrootte van de gebruiker en verwijzen dan naar de desktopversie of de mobiele versie.
Bij een mobile versie heb je veel dubbele content. Dit betekent dat een verandering soms op 2 plaatsen doorgevoerd moet worden. Het voordeel is een goede gebruikerservaring voor smartphones omdat deze helemaal afgesteld is op de smartphonegebruiker.
Oefeningen 6
Tekst in een responsive website is eenvoudig te schalen en vloeit mooi in ieder schermformaat. Voor een responsive afbeelding moet je iets meer doen. De makkelijkste manier is met een code in de stylesheet van de website een variabele breedte van de afbeelding in stellen, bijvoorbeeld: img { width: 100%; height: auto; }.
Toch ben je hiermee niet klaar. Je moet ook rekening houden met:
Eén van de grote uitdagingen bij het schalen van afbeeldingen voor kleinere schermen is de laadtijd van websites via mobiele datanetwerken. In de oplossingen hierboven verschijnt de fullscreen afbeelding heel snel op je desktopversie , maar heeft veel langer nodig op je smartphone met 3G en zelfs op 4G. Zorg daarom voor kleinere afbeeldingen bij kleinere schermen.
Bij websites die veel gebruik maken van grote, brede afbeeldingen of visual storytelling is het belangrijk dat de boodschap ook overkomt op een kleiner scherm. Het automatisch verkleinen is dan niet genoeg. De afbeelding op het voorbeeld hiernaast is op mobiel nauwelijks te zien.
Een oplossing hiervoor is een uitsnede maken van de afbeelding of het aanbieden van een andere afbeelding die beter overkomt op een klein scherm.
Met behulp van mediaquery's laad je dan de juiste afbeeldingen in voor verschillende schermformaten.
Er zijn een aantal technieken die je kunt gebruiken voor mobile afbeeldingen:
Welke oplossing het meest geschikt is voor jouw situatie hangt af van de techniek van het cms en hoeveel afbeeldingen je gebruikt.