Body
Footer
Header
Body
Footer
Header
Left aside
Right aside
Le parent
Les enfants
Aucun enfant n'a flex
Le premier enfant a flex à 1 et le second à 2
Le premier enfant a flex à 1
Largeur X
Y
Z
Place restante P = X - Y - Z
flex 1 + flex 2
P / 3
2 * P / 3
Sur le parent
row
column
Sur le parent
nowrap
wrap
wrap-reverse
Sur le parent
nowrap
wrap
wrap-reverse
Sur le parent, aligne selon l'axe d'orientation
flex-start
flex-end
center
space-between
space-around
flex-start
flex-end
center
space-between
space-around
Sur le parent, aligne perpendiculairement à l'axe d'orientation
flex-start
flex-end
center
baseline
stretch
flex-start
flex-end
center
baseline
stretch
Sur un des enfants
flex-grow
flex-shrink
flex-basis
Raccourci pour :
Valeurs par défaut :
1 1 auto
Sur un des enfants, définit son facteur de grossissement
On l'a déjà expliqué.
Sur un des enfants, définit sa taille par défaut
Sur un des enfants, définit son facteur de rétrécissement
s'il prend trop de place
Si flex-shrink: 0, le rétrécissement est interdit
.child.flex {
flex: 1 0 120px;
}
.child:nth-child(2) {
flex-shrink: 1;
}
.child:nth-child(3) {
flex-shrink: 2;
}
Sur un des enfants, change son ordre dans le flux
Valeur par défaut : 0
.child:nth-child(1) {
order: 1;
}
.child:nth-child(4) {
order: -1;
}
.login-center {
position: relative;
&__container {
@wrapperHeight: 160px;
@wrapperWidth: 45%;
height: @wrapperHeight;
left: 50%;
margin-top: -1 * @wrapperHeight / 2px;
margin-left: -1 = @wrapperWidth / 2px;
position: absolute;
top: 50%;
width: @wrapperWidth;
}
}
.login-center {
display: flex;
align-items: center;
justify-content: center;
}
.fixed-header-footer {
overflow: hidden;
@headerHeight: 35px;
@footerHeight: 10em;
padding-top: @headerHeight;
position: relative;
&__header {
height: @headerHeight;
line-height: @headerHeight;
left: 0px;
position: absolute;
right: 0px;
top: 0px;
}
&__content {
overflox: auto;
height: ~"calc(100% - @{footerHeight})";
}
&__footer {
bottom: 0px;
left: 0px;
position: absolute;
right: 0px;
}
}
.fixed-header-footer {
overflow: hidden;
display: flex;
flex-direction: column;
&__header {
height: 35px;
line-height: 35px;
}
&__content {
overflow: auto;
flex: 1 0 0px; // 0px: to allow priority on the other blocks
}
}
Du blog de Raphael Goetter : https://blog.goetter.fr/2016/10/17/oui-flexbox-est-buggue/
Car l'usage des float, inline-block... sous les différents navigateurs des problèmes :
Objectif simple : proposer une structure
.container {
display: grid;
grid-template-columns: 100px 200px 50px auto;
}
<div class="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
Proposé à l'origine par MicroSoft pour CSS3 en 2013
Commence à être reconnu
Il faudra activer une option sur les anciennes versions