la vie en flex

60
14/12/2015 VOYEZ LA VIE EN FLEX ! Présenté par b@lix pour Shiva Communication

Upload: thierry-de-langeron

Post on 12-Feb-2017

5.669 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: La vie en flex

14/12/2015

VOYEZLA VIE EN FLEX !

Présenté par b@lixpour Shiva Communication

Page 2: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

Page 3: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

3

L’intégration il y a 20 ans :

<table></table>

Page 4: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

4

Bien :

● Comportement liquide/fluide● Gestion des espaces restants● Possibilité d’alignement

(notamment vertical)● Blocs de même hauteur

Pas bien :

● Mélange le contenu et la mise en forme● Détournement de la balise <table>● Difficile à styliser avec des CSS● Illisible et compliqué à maintenir● Alourdi le code et les performances

La mise en page avec des tableaux, c’est bien et… c’est pas bien !

Page 5: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

5

L’intégration il y a 10 ans :

<div></div>+

CSS

Page 6: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

6

Bien :

● Séparation du contenu et de la mise en forme

● Simple à styliser● Cohérence graphique entre toutes

les pages● Maintenabilité et lisibilité du code● Meilleure sémantique

Pas bien :

● Les éléments doivent régulièrement être sortis du flux

● Impossible de faire des colonnes de même hauteur

● La croix et la bannière pour centrer des éléments à la verticale

● Gestion laborieuse de la largeur et la hauteur des éléments fluides

● “Divite” voire “divite aiguë” !

La mise en page avec des blocs et des CSS, c’est mieux mais… c’est pas encore ça !

Page 7: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

7

DÉSESPOIR !!!

Page 8: La vie en flex

14/12/2015 8

THIS IS A REVOLUTION !

UN PEU D’HISTOIRE...Puis Flexbox est arrivé et comme dirait Steve...

Page 9: La vie en flex

14/12/2015

UN PEU D’HISTOIRE...

9

Une histoire quelque peu mouvementée !

● 2008 : premier travaux du groupe de travail du W3C

● 2009 : première spécification utilisant le préfixe box- (display:box)

● 2011: évolution de la spécification qui introduit la notion de conteneur flexbox (display:flexbox)

● 2012 : spécification actuelle (display:flex)

● 2014 : “Last Call Working Draft” au W3C

Page 10: La vie en flex

14/12/2015

FLEXBOX, KÉZAKO ?

Page 11: La vie en flex

14/12/2015

FLEXBOX, KÉZAKO ?

11

Nouveau modèle de boîte CSS3(CSS Flexible Box Layout Module)

Page 12: La vie en flex

14/12/2015

FLEXBOX, KÉZAKO ?

12

Flexible, adjectif

1. Qui se laisse plier facilement sans se rompre.2. Qui peut s'adapter aux circonstances.

Le “Modèle de boîte flexible” ou flexbox issue du CSS3 est une mise en page qui fournit une disposition des éléments de la page de sorte que ceux-ci possèdent un comportement prévisible lorsque l'agencement de la page doit s'adapter en fonction des tailles d'écrans et des différents appareils.

Page 13: La vie en flex

14/12/2015

FLEXBOX, KÉZAKO ?

13

Flexbox a des Super-pouvoirs !

● Distribution des éléments horizontale ou verticale, avec passage à la ligne autorisé ou non.

● Alignements et centrages horizontaux et verticaux, justifiés, répartis.

● Réorganisation des éléments indépendamment de l’ordre du flux (DOM).

● Gestion des espaces disponibles (fluidité).

Page 14: La vie en flex

14/12/2015

COMMENT ÇA MARCHE,DOC ?

Page 15: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

15

● Un axe principal (main axis)

● Un axe secondaire (cross axis)

● Un conteneur flex (Flex container)

● Des éléments flex (Flex item)

● Des directions pour chaque axe (start/end)

Le principe

Page 16: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

16

Conteneur flex

élément flex

displayflex | inline-flex

CSS

.flex-container { display: flex;}

Page 17: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

17

1 2 3 4

flex-directionrow | row-reverse | column | column-reverse

CSS

.flex-container { flex-direction: row;}

Page 18: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

18

flex-directionrow | row-reverse | column | column-reverse

4 3 2 1

CSS

.flex-container { flex-direction: row-reverse;}

Page 19: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

19

1

2

3

4

flex-directionrow | row-reverse | column | column-reverse

CSS

.flex-container { flex-direction: column;}

Page 20: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

20

4

3

2

1

flex-directionrow | row-reverse | column | column-reverse

CSS

.flex-container { flex-direction: column-reverse;}

Page 21: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

21

flex-wrapnowrap | wrap | wrap-reverse

1 2 3 4 5 6 7 8 9 10 11 12

CSS

.flex-container { flex-wrap: nowrap;}

Page 22: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

22

flex-wrapnowrap | wrap | wrap-reverse

1 2 3 4 5 6 7 8

9 10 11 12

CSS

.flex-container { flex-wrap: wrap;}

Page 23: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

23

flex-flowflex-direction flex-wrap

Raccourci pour définir à la fois les propriétés flex-direction et flex-wrap

CSS

.flex-container { flex-flow: row wrap;}

Page 24: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

24

Et le positionnement dans tout ça ?

Page 25: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

25

justify-content

Alignement sur l’axe principal

● flex-start● flex-end● center● space-between● space-around

Page 26: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

26

justify-contentflex-start | flex-end | center | space-between | space-around

1 2 3 4

CSS

.flex-container { justify-content: flex-start;}

Page 27: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

27

justify-contentflex-start | flex-end | center | space-between | space-around

1 2 3 4

CSS

.flex-container { justify-content: flex-end;}

Page 28: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

28

justify-contentflex-start | flex-end | center | space-between | space-around

1 2 3 4

CSS

.flex-container { justify-content: center;}

Page 29: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

29

justify-contentflex-start | flex-end | center | space-between | space-around

1 2 3 4

CSS

.flex-container { justify-content: space-between;}

Page 30: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

30

justify-contentflex-start | flex-end | center | space-between | space-around

1 2 3 4

CSS

.flex-container { justify-content: space-around;}

Page 31: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

31

align-items

Alignement sur l’axe secondaire

● flex-start● flex-end● center● baseline● stretch

Page 32: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

32

align-itemsflex-start | flex-end | center | baseline | stretch

1 2 3 4

CSS

.flex-container { align-items: flex-start;}

Page 33: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

33

align-itemsflex-start | flex-end | center | baseline | stretch

1 2 3 4

CSS

.flex-container { align-items: flex-end;}

Page 34: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

34

align-itemsflex-start | flex-end | center | baseline | stretch

1 2 3 4

CSS

.flex-container { align-items: center;}

Page 35: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

35

align-itemsflex-start | flex-end | center | baseline | stretch

content content content content

CSS

.flex-container { align-items: baseline;}

Page 36: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

36

align-itemsflex-start | flex-end | center | baseline | stretch

1 2 3 4

CSS

.flex-container { align-items: stretch;}

Page 37: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

37

align-content

Alignement des lignes du conteneur flex(ne fonctionne uniquement s’il y’a plusieurs lignes)

● flex-start● flex-end● center● space-between● space-around● stretch

Page 38: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

38

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: flex-start;}

Page 39: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

39

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: flex-end;}

Page 40: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

40

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: center;}

Page 41: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

41

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: space-between;}

Page 42: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

42

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: space-around;}

Page 43: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

43

align-contentflex-start | flex-end | center | space-between | space-around | stretch

CSS

.flex-container { align-content: stretch;}

Page 44: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

44

Propriétés spécifiques aux items flex

Page 45: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

45

order

CSS

.flex-item { order: <integer>;}

3

order: -1

1

order: 0

4

order: 1

2

order: 2

Page 46: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

46

flex-grow (facteur d’étirement)

CSS

.flex-item { flex-grow: <number>;}

1

flex-grow: 1

2

flex-grow: 1

3

flex-grow: 1

4

flex-grow: 1

5

flex-grow: 1

6

flex-grow: 1

1

flex-grow: 1

2

flex-grow: 3

3

flex-grow: 1

4

flex-grow: 1

5

flex-grow: 1

6

flex-grow: 1

Page 47: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

47

flex-shrink (facteur de contraction)

CSS

.flex-item { flex-shrink: <number>;}

1

flex-shrink: 1

2

flex-shrink: 1

3

flex-shrink: 1

4

flex-shrink: 1

1

flex-shrink: 1

2

flex-shrink: 2

3

flex-shrink: 1

4

flex-shrink: 1

Page 48: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

48

flex-basis (valeur de la taille initiale)

CSS

.flex-item { flex-basis: auto | <width>;}

1

flex-basis :auto

2

flex-basis :350px

3

flex-basis :auto

4

flex-basis :auto

Page 49: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

49

flexflex-grow flex-shrink flex-basis

Raccourci pour définir à la fois les propriétés flex-grow, flex-shrink et flex-basis

CSS

.flex-container { flex: 2 1 350px;}

Page 50: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

50

align-selfauto | flex-start | flex-end | center | baseline | stretch

CSS

.flex-item { align-self: flex-end;}

Page 51: La vie en flex

14/12/2015

EXEMPLES CONCRETS !

Page 52: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

52

Modèle de page

Page 53: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

53

Menu extensible

Page 54: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

54

Système de grille

Page 55: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

55

Galerie d’images

Page 56: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

56

Mise en page d’articles

Page 57: La vie en flex

14/12/2015

ET LA COMPATIBILITÉ DANS TOUT ÇA ?

57

FirefoxIE10+avec préfixe -ms

pour IE10

Opera Safariavec préfixe -

webkit

Chrome iOS Android

Page 58: La vie en flex

14/12/2015

COMMENT ÇA MARCHE DOC ?

58

NICE !!!

Page 59: La vie en flex

14/12/2015

RESSOURCES

59

● Spécifications du W3C :http://www.w3.org/TR/css-flexbox/

● Support navigateurs :http://caniuse.com/flexbox

● Article de la fondation Mozilla :https://developer.mozilla.org/fr/docs/Web/Guide/CSS/Flexible_boxes

● Visual Guide to CSS3 Flexbox Properties :https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties

● Guide complet par CSS-TRICKS :https://css-tricks.com/snippets/css/a-guide-to-flexbox/

● Flexbox, guide complet par Chris Coyier :http://la-cascade.ghost.io/flexbox-guide-complet/

● Flexy boxes (flexbox playground and code generator) :http://the-echoplex.net/flexyboxes/

● Jack in the flexbox (Raphael Goetter) :http://jackintheflexbox.tumblr.com/

Page 60: La vie en flex

14/12/2015

DES QUESTIONS ?

60

En vous remerkiant !

Présenté par b@[email protected]