4. 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 !
6. 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 !
8. 14/12/2015
8
THIS IS A REVOLUTION !
UN PEU D’HISTOIRE...
Puis Flexbox est arrivé et comme dirait Steve...
9. 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
12. 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.
13. 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é).
15. 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
23. 14/12/2015
COMMENT ÇA MARCHE DOC ?
23
flex-flow
flex-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;
}
48. 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
49. 14/12/2015
COMMENT ÇA MARCHE DOC ?
49
flex
flex-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;
}
50. 14/12/2015
COMMENT ÇA MARCHE DOC ?
50
align-self
auto | flex-start | flex-end | center | baseline | stretch
CSS
.flex-item {
align-self: flex-end;
}
59. 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/