TEN CUIDADO
En algunos navegadores:
flex:1;
no es igualflex:1 1 0;
flex:1;
= flex:1 1 0n;
(donde n es una unidad de longitud).
- flex-grow: un número que especifica cuánto crecerá el elemento en relación con el resto de los elementos flexibles.
- flex-shrink Un número que especifica cuánto se encogerá el artículo en relación con el resto de los artículos flexibles
- base flexible La longitud del artículo. Valores legales: "auto", "heredar" o un número seguido de "%", "px", "em" o cualquier otra unidad de longitud.
El punto clave aquí es que la base flexible requiere una unidad de longitud .
En Chrome por ejemplo flex:1
y flex:1 1 0
producir resultados diferentes. En la mayoría de las circunstancias, puede parecer que flex:1 1 0;
está funcionando, pero examinemos lo que realmente sucede:
EJEMPLO
La base flexible se ignora y solo se aplican flex-grow y flex-shrink.
flex:1 1 0;
= flex:1 1;
=flex:1;
Sin embargo, esto puede parecer correcto a primera vista si la unidad aplicada del contenedor está anidada; ¡esperar lo inesperado!
Prueba este ejemplo en CROMO
.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>
COMPATIBILIDAD
Cabe señalar que esto falla porque algunos navegadores no han cumplido con la especificación .
Navegadores que utilizan la especificación flexible completa:
- Firefox - ✓
- Edge - ✓ (Lo sé, también me sorprendió).
- Cromo - x
- Valiente - x
- Opera - x
- IE - (lol, funciona sin unidad de longitud pero no con una).
ACTUALIZACIÓN 2019
Las últimas versiones de Chrome parecen haber solucionado finalmente este problema, pero otros navegadores aún no lo han hecho.
Probado y funcionando en Chrome Ver 74.