ACHTUNG
In einigen Browsern:
flex:1;
ist nicht gleichflex:1 1 0;
flex:1;
= flex:1 1 0n;
(wobei n eine Längeneinheit ist).
- Flex-Grow: Eine Zahl, die angibt, um wie viel das Element im Vergleich zu den übrigen flexiblen Elementen wächst.
- Flex-Shrink Eine Zahl, die angibt, um wie viel der Artikel im Vergleich zu den übrigen flexiblen Artikeln schrumpft
- Flex-Basis Die Länge des Artikels. Zulässige Werte: "auto", "erben" oder eine Zahl gefolgt von "%", "px", "em" oder einer anderen Längeneinheit.
Der entscheidende Punkt hierbei ist, dass die Flex-Basis eine Längeneinheit erfordert .
In Chrome zum Beispiel flex:1
und flex:1 1 0
erzeugen unterschiedliche Ergebnisse. In den meisten Fällen scheint flex:1 1 0;
es zu funktionieren, aber lassen Sie uns untersuchen, was wirklich passiert:
BEISPIEL
Die Flex-Basis wird ignoriert und nur Flex-Grow und Flex-Shrink werden angewendet.
flex:1 1 0;
= flex:1 1;
=flex:1;
Dies mag auf den ersten Blick in Ordnung erscheinen, wenn die angewendete Einheit des Containers verschachtelt ist. erwarte das Unerwartete!
Versuchen Sie dieses Beispiel in CHROM
.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>
KOMPATIBILITÄT
Es ist zu beachten, dass dies fehlschlägt, da einige Browser die Spezifikation nicht eingehalten haben .
Browser, die die vollständige Flex-Spezifikation verwenden:
- Firefox - ✓
- Edge - ✓ (Ich weiß, ich war auch schockiert.)
- Chrome - x
- Tapfer - x
- Oper - x
- IE - (lol, es funktioniert ohne Längeneinheit, aber nicht mit einer.)
UPDATE 2019
Die neuesten Versionen von Chrome scheinen dieses Problem endgültig behoben zu haben, andere Browser jedoch noch nicht.
Getestet und funktioniert in Chrome Ver 74.