la vie en flex
TRANSCRIPT
![Page 1: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/1.jpg)
14/12/2015
VOYEZLA VIE EN FLEX !
Présenté par b@lixpour Shiva Communication
![Page 2: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/2.jpg)
14/12/2015
UN PEU D’HISTOIRE...
![Page 3: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/3.jpg)
14/12/2015
UN PEU D’HISTOIRE...
3
L’intégration il y a 20 ans :
<table></table>
![Page 4: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/7.jpg)
14/12/2015
UN PEU D’HISTOIRE...
7
DÉSESPOIR !!!
![Page 8: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/10.jpg)
14/12/2015
FLEXBOX, KÉZAKO ?
![Page 11: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/14.jpg)
14/12/2015
COMMENT ÇA MARCHE,DOC ?
![Page 15: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/24.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
24
Et le positionnement dans tout ça ?
![Page 25: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/44.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
44
Propriétés spécifiques aux items flex
![Page 45: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/51.jpg)
14/12/2015
EXEMPLES CONCRETS !
![Page 52: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/52.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
52
Modèle de page
![Page 53: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/53.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
53
Menu extensible
![Page 54: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/54.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
54
Système de grille
![Page 55: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/55.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
55
Galerie d’images
![Page 56: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/56.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
56
Mise en page d’articles
![Page 57: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/58.jpg)
14/12/2015
COMMENT ÇA MARCHE DOC ?
58
NICE !!!
![Page 59: La vie en flex](https://reader034.vdocuments.net/reader034/viewer/2022052514/589f9c9a1a28abc04e8b47a3/html5/thumbnails/59.jpg)
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/