Upload
normandie-web-xperts
View
78
Download
0
Tags:
Embed Size (px)
Citation preview
Crédit photo © Mathieu Drouet
raphaël goetter✓ alsacreations.com ✓ goetter.fr ✓ mydevice.io ✓ knacss.com ✓ @goetter
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 !
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;
.parent {
display: flex;
flex-‐direction: row;
}
axe principal =
horizontal
Salade Tomate Oignon Picon bière
.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
‟Jesus, inventeur officiel de la grande distribution (de pains)…
— Chang-Edouard Leclerc, distributeur
</distribution>
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>
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;
.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>
header
contentlorem schnapsum hopla
choucroute saucisse
footer
body {
display: flex;
flex-‐direction: column;
}
header
contentlorem schnapsum hopla
choucroute saucisse
footer
body {
display: flex;
flex-‐direction: column;
}
footer {
margin-‐top: auto;
}
Picon bière
.parent {
display: flex;
}
.picon-‐biere {
margin: auto;
}
Codepen or didn’t happen (margin-auto)
PICON BIÈRE !
Picon bière.parent {
display: flex;
}
.picon-‐biere {
width: 200px;
flex-‐shrink: 1;
}
flex-shrink
Picon bière.parent {
display: flex;
}
.picon-‐biere {
flex-‐basis: 200px;
flex-‐grow: 1;
}
flex-basis
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)
enfant 2lorem schnapsum hopla
choucroute saucisse
.parent {
display: flex;
}
.enfant-‐1,
.enfant-‐2 {
width: 50%;
}
enfant 1lorem schnapsum hopla
choucroute saucissepicon knack
enfant 2lorem schnapsum
hoplachoucroute saucisse
.parent {
display: flex;
}
.enfant-‐1,
.enfant-‐2 {
width: 50%;
}
enfant 1lorem schnapsum
hoplachoucroute saucisse
picon knack
.enfant-‐1 {
margin-‐right: 50px;
}
enfant 2lorem
schnapsum hopla
choucroute saucisse
.parent {
display: flex;
}
.enfant-‐1,
.enfant-‐2 {
width: 50%;
}
enfant 1lorem
schnapsum hopla
choucroute saucisse
picon knack
.enfant-‐1 {
margin-‐right: 250px;
}
(et ouais parce quepar défaut, flex-shrink vaut 1)
‟Non, un « gabarit élastique » n’est pas qu’un acteur de films pour adultes
— Clarisse Morgane, contorsionniste
</flexibilité>
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)
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;
}
header
nav
content
footerFlexbox t’aide à
construire des mondes merveilleux !
JTM ♥
.wrapper {
display: flex;
flex-‐direction: column;
}
nav {
order: 1;
}
petit écran ?
‟Bien sûr que flexbox vous aide à protéger vos données personnelles sur Facebook !
— Marcello Zuckerberg, Community Manager
http://philipwalton.github.io/solved-by-flexbox/ http://flexboxgrid.com/ http://the-echoplex.net/flexyboxes/ http://jackintheflexbox.tumblr.com/