SlideShare une entreprise Scribd logo
1  sur  114
Télécharger pour lire hors ligne
by raphaël
Crédit photo © Mathieu Drouet
raphaël goetter
✓ alsacreations.com
✓ goetter.fr
✓ mydevice.io
✓ knacss.com
✓ @goetter
flexbox ?
distribution
ordonnancement
alignement
flexibilité
compatible ?
oui !
(IE 10) (Safari 3.1)(Android 2.1)
(Chrome 4)
(Firefox 2) (Opera 12.1)
(Stats Caniuse France)
standard ?
presque !
erf !
OK, je fais quoi avec ?
Picon bière
mais aussi…
nav content
nav content
nav content
mais aussi…
je suis un pied toujours en bas
je suis un pied toujours en bas
je suis un pied toujours en bas
mais aussi…
moi je suis un gabarit
je prends
toute la
hauteur
de page
je suis fluide et
responsive
et réalisé en quelques minutes
moi je suis un gabarit
je prends
toute la
hauteur
de page
je suis fluide et responsive
et réalisé en quelques minutes
mais aussi…
avec des
hauteurs
identiques
je suis une
grille en
flexbox
certains de mes éléments
peuvent occuper plusieurs
emplacements
et une
gouttière
définie
et je suis fluide
et responsive
hop, moi je suis
calé à droite !
plutôt
chouette,
non ?
mais aussi…
kiwi.pdf
tomate.docx
oignon.pptx
salade.pdf
picon.docx
bière.pptx
kiwi.pdf
tomate.docx
oignon.pptx
salade.pdf
picon.docx
bière.pptx
mais aussi plein d’autres trucs !
en action !
.parent  {  
display:  block;  
}
Salade
Tomate
Oignon
Picon bière
.enfant  {  
display:  block;  
}
Salade Tomate Oignon Picon bière
.parent  {  
display:  flex;  
}
« flex-items »
« flex-container »
display:  block;  
display:  inline-­‐block;  
display:  table;  
float:  left;  
display:  none;  
position:  absolute;
distribution
distribution
flex-­‐direction
Salade Tomate Oignon Picon bière
.parent  {  
display:  flex;  
}
Salade Tomate Oignon Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  row;  
}
axe principal
=
horizontal
SaladeTomateOignonPicon bière
.parent  {  
display:  flex;  
flex-­‐direction:  row-­‐reverse;  
}
exemple vite fait ?
.parent  {  
display:  flex;  
flex-­‐direction:  row;  
}
Le module de positionnement CSS3 « Flexbox » introduit
un tout nouveau système de positionnement (via la propriété
display comme de coutume) permettant, entre autres, de :
• distribuer les éléments aussi bien en lignes qu’en blocs
• contrôler la gestion des espaces disponibles ;
• contrôler les alignements verticaux et horizontaux ;
• agencer les éléments sans tenir compte du DOM.
Rien que ce dernier point démontre à quel point ce module
est avancé par rapport à tout ce qu’on a connu.
.parent  {  
display:  flex;  
flex-­‐direction:  row-­‐reverse;  
}
Le module de positionnement CSS3 « Flexbox » introduit
un tout nouveau système de positionnement (via la propriété
display comme de coutume) permettant, entre autres, de :
• distribuer les éléments aussi bien en lignes qu’en blocs ;
• contrôler la gestion des espaces disponibles ;
• contrôler les alignements verticaux et horizontaux ;
• agencer les éléments sans tenir compte du DOM.
Rien que ce dernier point démontre à quel point ce module
est avancé par rapport à tout ce qu’on a connu.
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
axe principal
=
vertical
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column-­‐reverse;  
}
Salade Tomate Oignon Picon bière
.parent  {  
display:  flex;  
}
erf, ça déborde
Salade Tomate Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐wrap:  wrap;  
}
Salade Tomate Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐wrap:  wrap-­‐reverse;  
}
‟Jesus, inventeur officiel de la
grande distribution (de pains)…
— Chang-Edouard Leclerc, distributeur
</distribution>
ordonnancement
ordonnancement
order
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
Salade
Tomate
Oignon
Picon bière
.oignon  {  
order:  1;  
}
Salade
Tomate
Oignon
Picon bière
.oignon  {  
order:  1;  
}
.picon-­‐biere  {  
order:  -­‐1;  
}
exemple vite fait ?
Commencer à bosserimportant
Changer de sous-vêtementsimportant
Acheter l’iPhone 6done
Suivre le lapin blanctodo
Prendre un dernier picon-bièretodo
Arrêter de jouer à HearthStonetodo
Ma todo liste !
Commencer à bosserimportant
Changer de sous-vêtementsimportant
Acheter l’iPhone 6done
Suivre le lapin blanctodo
Prendre un dernier picon-bièretodo
Arrêter de jouer à HearthStonetodo
Ma todo liste !
.important  {  
order:  -­‐1;  
}
.done  {  
order:  1;  
}
‟Quand c’est le bordel dans ma
chambre, j’invoque les 

Forces de l’Ordre !
— Luke Skybloguer, stagiaire Jedi
</ordonnancement>
alignement

(axe principal)
alignement

(axe principal)
justify-­‐content
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
justify-­‐content:  flex-­‐end;  
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
justify-­‐content:  center;  
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
justify-­‐content:  space-­‐

between;  
alignement

(axe secondaire)
alignement

(axe secondaire)
align-­‐items
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
align-­‐items:  flex-­‐start;  
Salade
Tomate
Oignon
Picon bière
Salade
Tomate
Oignon
Picon bière
align-­‐items:  flex-­‐end;  
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
Salade
Tomate
Oignon
Picon bière
align-­‐items:  center;  
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
Salade
Tomate
Oignon
Picon bière
align-­‐items:  stretch;  
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
align-­‐items:  stretch;  
}
.oignon  {  
align-­‐self:  flex-­‐end;  
}
Salade
Tomate
Oignon
Picon bière
‟Ça se saurait si on pouvait
centrer verticalement avec
margin: auto !
— Jean-Kévin Bayrou, centriste
</alignement>
mais en fait…
flexbox est bi !
Picon bière
.parent  {  
display:  flex;  
}
.picon-­‐biere  {  
margin:  auto;  
}
Codepen or didn’t happen (margin-auto)
PICON BIÈRE !
flexibilité
flexibilité
flex
flex
flex-­‐grow  



capacité  à  s’élargir  
selon  l’espace  
restant



(défaut  =  0)
flex-­‐shrink  



capacité  à  se  
contracter  selon  
l’espace  restant



(défaut  =  1)
flex-­‐basis  



dimension  par  défaut  
avant  que  l’espace  
ne  soit  distribué



(défaut  =  main-­‐size  =  
auto)
Salade
Tomate
Oignon
Picon bière
.parent  {  
display:  flex;  
flex-­‐direction:  column;  
}
Salade
Tomate
Oignon
Picon bière
.oignon  {  
flex:  1;  
}
Salade
Tomate
Oignon
Picon bière
.oignon  {  
flex:  1;  
}
.tomate  {  
flex:  1;  
}
50%
50%
Salade
Tomate
Oignon
Picon bière
.oignon  {  
flex:  1;  
}
.tomate  {  
flex:  2;  
}
2/3
1/3
exemple vite fait ?
accueil société contact picon
nav  a  {  
flex:  1;  
}
nav  a:hover  {  
flex:  2;  
}
accueil société contact picon
nav  a  {  
flex:  1;  
}
nav  a:hover  {  
flex:  2;  
}
‟Non, un « gabarit élastique »
n’est pas qu’un acteur de films
pour adultes
— Clarisse Morgane, contorsionniste
</flexibilité>
résumé
distribution
ordonnancement
alignement
flexibilité
distribution
ordonnancement
alignement
flexibilité
flex-­‐direction  (défaut  =  row)
distribution
ordonnancement
alignement
flexibilité
order  (défaut  =  0)
distribution
ordonnancement
alignement
flexibilité
justify-­‐content  (défaut  =  flex-­‐start)
align-­‐items  (défaut  =  stretch)
align-­‐self  (défaut  =  auto)
distribution
ordonnancement
alignement
flexibilité
flex  (défaut  =  variable  selon  grow/shrink/basis)
flex-­‐grow  (défaut  =  0)
flex-­‐shrink  (défaut  =  1)
flex-­‐basis  (défaut  =  main-­‐size  =  auto)
un template en 5min
ouais
header
nav
content
footer
body
.wrapper
header
nav
content
footer
body  {  
min-­‐height:  100vh;  
}
IE9+

#lesavieztu?
header
nav
content
footer
body  {  
display:  flex;  
flex-­‐direction:  column;  
flex-­‐wrap:  wrap;  
}
min-­‐height
header
nav
content
footer
body
min-­‐height
display
flex-­‐direction
flex-­‐wrap
}
.wrapper  {  
flex:  1;  
}
header
nav content
footer
body
min-­‐height
display
flex-­‐direction
flex-­‐wrap
}
.wrapper
flex
}
display:  flex;
header
nav content
footer
body
min-­‐height
display
flex-­‐direction
flex-­‐wrap
}
.wrapper
display
flex
}
.content  {  
flex:  1;  
}
.wrapper  {  
display:  flex;  
display:  block;  
}
header
nav
content
footer
petit
écran ?
header
nav
content
footer
Flexbox t’aide à
construire des mondes
merveilleux !
JTM ♥
.wrapper  {  
display:  flex;  
flex-­‐direction:  column;  
}
nav  {  
order:  1;  
}
petit
écran ?
Job’s done
Codepen or didn’t happen (template)
‟Bien sûr que flexbox vous aide
à protéger vos données
personnelles sur Facebook !
— Marcello Zuckerberg, Community Manager
bonus
BFC !
un float ne déborde pas d’un « flex-container »
un float ne déborde pas d’un « flex-item »
un « flex-container » ne s’écoule pas autour d’un float
Salade
.parent  {  
display:  block;  
}
.salade  {  
display:  block;  
}
Salade
.parent  {  
display:  block;  
}
.salade  {  
display:  block;  
float:  left;  
}
Salade
.parent  {  
display:  flex;  
}
.salade  {  
display:  block;  
float:  left;  
}
un float ne déborde pas d’un « flex-container »
nav  {  
display:  block;  
}
.content  {  
display:  block;  
}
nav
content
contentnav nav  {  
float:  left;  
}
.content  {  
display:  block;  
}
un « flex-container » ne s’écoule pas autour d’un float
nav nav  {  
float:  left;  
}
.content  {  
display:  flex;  
}
content
Codepen or didn’t happen (BFC)
flexbox, 

une révolution ?
ouais
flexbox, le futur du
positionnement ?
ça dépend®©™
flexbox, 

en prod ?
ouais
(avec des précautions : Autoprefixer ♥ )
ressources
http://philipwalton.github.io/solved-by-flexbox/http://flexboxgrid.com/http://the-echoplex.net/flexyboxes/http://jackintheflexbox.tumblr.com/
Flexbox
all the things !
merci
et
@goetter
Icônes browsers « Pony »:
Safari / Opera by McSadat
Chrome by he4rtofcourage
IE by McSadat
Firefox by NoReasonToHope
raphaël
BISOU ♥

Contenu connexe

Plus de Microsoft

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuMicrosoft
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileMicrosoft
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Microsoft
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Microsoft
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Microsoft
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à ZMicrosoft
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Microsoft
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsMicrosoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryMicrosoft
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Microsoft
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET CoreMicrosoft
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Microsoft
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursMicrosoft
 

Plus de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Flexbox Révolution