Chcę używać Flexbox, który ma pewną liczbę elementów, które mają tę samą szerokość. Zauważyłem, że Flexbox rozprowadza przestrzeń równomiernie, a nie samą przestrzeń.Jak zrobić elementy flexbox tego samego rozmiaru?
Na przykład:
.header {
display: flex;
}
.item {
flex-grow: 1;
text-align: center;
border: 1px solid black;
}
<div class="header">
<div class="item">asdfasdfasdfasdfasdfasdf</div>
<div class="item">z</div>
</div>
Pierwsza pozycja jest dużo większy niż sekundę. Jeśli mam 3 elementy, 4 elementy lub n elementów, chcę, aby wszystkie pojawiały się w tej samej linii z równą ilością miejsca na element.
Wszelkie pomysły?
http://codepen.io/anon/pen/gbJBqM
To nie jest poprawne. Domyślna wartość flex to 'flex: 0 1 auto'. Co oznacza, że ustawienie 'flex: 1' spowoduje' flex: 1 1 auto'. To nie zadziała. Poprawną odpowiedzią jest 'flex: 1 1 0' jak podano powyżej przez Adama –
@ r.sendecky Nie, jesteś tym, który jest niepoprawny. Jak stwierdziłem w mojej odpowiedzi, skrót słowa 'flex: 1' daje w wyniku' flex: 1 1 0' ** not ** 'flex: 1 1 auto', tak jak ty roszczenia. Zapoznaj się z oficjalną specyfikacją W3 w sekcji ['flex stenografia'] (https://www.w3.org/TR/css-flexbox-1/#flex-property): kiedy 'flex-basis' jest" pominięty w skrócie skróconym, jego określoną wartością jest "0", a nie "auto". Dzięki za losowe trafienie. –
@ r.sendecky - Zobacz także [ten przykład] (https://jsfiddle.net/o25wto2d/) utworzony w celu wizualizacji odmian. –