Top Banner
Geef je webpagina’s de vorm die jij wil CSS positioning
81

CSS positionering

Jan 26, 2017

Download

Design

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSS positionering

Geef je webpagina’s de vorm die jij wilCSS positioning

Page 2: CSS positionering

“Learn the rules so you know how to break them properly.”

—Dalai Lama

Page 3: CSS positionering

The rules: de natuurlijke flow van HTML-elementen

Page 4: CSS positionering

De natuurlijke flow van HTML

• De volgorde waarin HTML-elementen voorkomen in de bron van de pagina, wordt gerespecteerd

• Het eerste HTML-element wordt bovenaan links geplaatst

• Het volgende element verschijnt er naast of er onder

Page 5: CSS positionering
Page 6: CSS positionering

Positioneren binnen de natuurlijke flow

• margin • padding • display (inline, block, inline-block, none…)

Page 7: CSS positionering

We kunnen heel wat, maar blijven toch beperkt op vlak van vormgeving

Page 8: CSS positionering

Door elementen uit de natuurlijke flow te halen, bereiken we grafisch quasi onbeperkte mogelijkheden

“Breaking the rules”

Page 9: CSS positionering
Page 10: CSS positionering
Page 11: CSS positionering
Page 12: CSS positionering
Page 13: CSS positionering
Page 14: CSS positionering
Page 15: CSS positionering
Page 16: CSS positionering
Page 18: CSS positionering
Page 19: CSS positionering

Hoe positioneren we elementen buiten de natuurlijke flow van

de pagina?

Page 20: CSS positionering

Elementen uit de natuurlijke flow halen

123

relatief positioneren

absoluut positioneren

fixed positioneren

4 floaten

Page 21: CSS positionering

div { position: static; }

Geen positionering

Page 22: CSS positionering

Relatief positioneren

11

Page 23: CSS positionering

b { position:relative; }

Het b element gedraagt zich als een static (niet-gepositioneerd) element totdat je het positie geeft.

Page 24: CSS positionering

b { position: relative; top: 10px; left: 20px; }

Verschuiven tov de plaats waar het normaal gezien voorkomt in de natuurlijke flow van de pagina

Page 25: CSS positionering

b { position: relative; right: 10px; bottom: 20px; }

Verschuiven tov de plaats waar het normaal gezien voorkomt in de natuurlijke flow van de pagina

Page 26: CSS positionering

b { position:relative; }

Het volgende element wordt gepositioneerd op de plaats waar het normaal gezien zou voorkomen als b gewoon in de flow van de pagina was blijven staan.

Page 27: CSS positionering

Absoluut positioneren

12

Page 28: CSS positionering

b { position:absolute; }

Het b element wordt uit de natuurlijke flow van de pagina gehaald, maar komt wel voor waar het normaal gezien zou voorkomen als het in de natuurlijke flow was blijven staan.

Page 29: CSS positionering

b { position:absolute; }

Het volgende element gedraagt zich bijgevolg alsof b niet bestaat.

Page 30: CSS positionering

b { position:absolute; }

Als b geen breedte (width) heeft gekregen, wordt het zo breed als zijn content.

Page 31: CSS positionering

b { position: absolute; top: 10px; left: 20px; }

Positioneren tov de eerste gepositioneerde voorouder

(als die er niet is: tov de body)

Page 32: CSS positionering

b { position: absolute; bottom: 10px; right: 20px; }

Positioneren tov de eerste gepositioneerde voorouder

(als die er niet is: tov de body)

Page 33: CSS positionering

b { position: absolute; bottom: 0; right: 0; top: 0; left: 0; }

b neemt de volledige breedte en hoogte in van de gepositioneerde

voorouder (of body)

Page 34: CSS positionering
Page 35: CSS positionering
Page 36: CSS positionering
Page 37: CSS positionering
Page 38: CSS positionering
Page 39: CSS positionering
Page 40: CSS positionering
Page 41: CSS positionering

Fixed positioneren

13

Page 42: CSS positionering

b { position:fixed; }

Het b element wordt gepositioneerd ten opzichte van het browservenster

Page 43: CSS positionering

b { position: fixed; top: 10px; right: 20px; }

Positioneren tov het browservenster

Page 44: CSS positionering

b { position: fixed; bottom: 10px; left: 20px; }

Positioneren tov het browservenster

Page 45: CSS positionering
Page 46: CSS positionering
Page 47: CSS positionering
Page 48: CSS positionering
Page 49: CSS positionering

b { position:fixed; }

Het element wordt uit de flow van de pagina gehaald. Het volgende element gedraagt zich dus alsof b niet bestaat. (exact zoals bij absoluut positioneren)

Page 50: CSS positionering

b { position:fixed; }

De breedte van het element verkleint tot de content er net in past. (exact zoals bij absoluut positioneren)

Page 51: CSS positionering

Overlapping beïnvloeden

Page 52: CSS positionering

b { z-index: 3; }

Gebruik z-index om de stapelvolgorde van gepositioneerde elementen te beïnvloeden. Hoe hoger de waarde voor z-index, hoe dichter een element bij de kijker komt.

Page 53: CSS positionering

div { z-index:1; }

div { z-index:2; }

Page 54: CSS positionering

Over z-index

• Niet-gepositioneerde elementen (position:static) hebben geen z-index ofwel een z-index van 0

• Bij gelijke z-index komt het laatste element in de broncode hoger te liggen in de stapelvolgorde

Page 55: CSS positionering

Float

14

Page 56: CSS positionering

Floats worden vandaag nog het meest gebruikt om algemene

(koloms)layouts te maken

Page 57: CSS positionering

De reden is de historisch slechte browserondersteuning van display: inline-block

Page 58: CSS positionering

Voor de rest volstrekt achterhaald!

Page 59: CSS positionering
Page 60: CSS positionering

b { float: left; }

Het b element komt verticaal gezien nog altijd voor op zijn plaats in de natuurlijke flow van de pagina maar wordt dan volledig naar de zijkant verplaatst. De inhoud van de volgende elementen vloeit rondom de float.

Page 61: CSS positionering

Foto’s: http://www.css-tricks.com

Page 62: CSS positionering

Floats moet je altijd breedte geven (met uitzondering van beelden)

Page 63: CSS positionering

De inhoud van de niet-floated elementen loopt rondom de float, maar de achtergrond en rand niet

Page 64: CSS positionering

Als een floated element te weinig plaats heeft, schuift het op naar de

eerstvolgende regel waar er wel voldoende plaats is.

Page 65: CSS positionering

Het element dat volgt op een float moet je clearen als je wil dat zijn inhoud niet langs de float vloeit.

Page 66: CSS positionering

b { clear: left; }

De inhoud van het b element zal nooit langs een links gefloat element vloeien dat eerder in de broncode voorkomt.

Page 67: CSS positionering

b { clear: right; }

De inhoud van het b element zal nooit langs een rechts gefloat element vloeien dat eerder in de broncode voorkomt.

Page 68: CSS positionering

b { clear: both; }

De inhoud van het b element zal nooit langs een float vloeien die eerder in de broncode voorkomt.

Page 69: CSS positionering

De hoogte van een element dat floats bevat wordt niet automatisch

aangepast aan zijn inhoud.

Page 70: CSS positionering

Probeer inline-block te gebruiken voor kolomslayout en floats voor dit

soort dingen:

Page 71: CSS positionering

position:fixed;float:left;

width: 400px; margin-left: 200px;

float:left; width: 300px;

Page 72: CSS positionering
Page 73: CSS positionering
Page 74: CSS positionering
Page 75: CSS positionering
Page 76: CSS positionering
Page 77: CSS positionering
Page 78: CSS positionering
Page 79: CSS positionering
Page 81: CSS positionering