FAITES ATTENTION
Dans certains navigateurs:
flex:1;
ne pas égalerflex:1 1 0;
flex:1;
= flex:1 1 0n;
(où n est une unité de longueur).
- flex-grow: un nombre spécifiant la croissance de l'élément par rapport au reste des éléments flexibles.
- flex-shrink Un nombre spécifiant le degré de rétrécissement de l'élément par rapport au reste des éléments flexibles
- flex-base La longueur de l'élément. Valeurs légales: "auto", "inherit" ou un nombre suivi de "%", "px", "em" ou de toute autre unité de longueur.
Le point clé ici est que la base flexible nécessite une unité de longueur .
Dans Chrome par exemple flex:1
et flex:1 1 0
produire des résultats différents. Dans la plupart des cas, il peut sembler que cela flex:1 1 0;
fonctionne, mais examinons ce qui se passe réellement:
EXEMPLE
La base Flex est ignorée et seuls flex-grow et flex-shrink sont appliqués.
flex:1 1 0;
= flex:1 1;
=flex:1;
Cela peut à première vue sembler correct si l'unité appliquée du conteneur est imbriquée; attendez-vous à l'inattendu!
Essayez cet exemple dans CHROME
.Wrap{
padding:10px;
background: #333;
}
.Flex110x, .Flex1, .Flex110, .Wrap {
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
}
.Flex110 {
-webkit-flex: 1 1 0;
flex: 1 1 0;
}
.Flex1 {
-webkit-flex: 1;
flex: 1;
}
.Flex110x{
-webkit-flex: 1 1 0%;
flex: 1 1 0%;
}
FLEX 1 1 0
<div class="Wrap">
<div class="Flex110">
<input type="submit" name="test1" value="TEST 1">
</div>
</div>
FLEX 1
<div class="Wrap">
<div class="Flex1">
<input type="submit" name="test2" value="TEST 2">
</div>
</div>
FLEX 1 1 0%
<div class="Wrap">
<div class="Flex110x">
<input type="submit" name="test3" value="TEST 3">
</div>
</div>
COMPATIBILITÉ
Il convient de noter que cela échoue car certains navigateurs n'ont pas respecté la spécification .
Navigateurs utilisant la spécification flex complète:
- Firefox - ✓
- Edge - ✓ (Je sais, j'ai été choqué aussi.)
- Chrome - x
- Brave - x
- Opéra - x
- IE - (lol, cela fonctionne sans unité de longueur mais pas avec une seule.)
MISE À JOUR 2019
Les dernières versions de Chrome semblent avoir finalement résolu ce problème, mais d'autres navigateurs ne l'ont toujours pas fait.
Testé et fonctionnant dans Chrome Ver 74.