フレックスグローを理解してはいけません。以下のJSFiddleにジャンプした場合-私が理解する方法、.big
は、他の.flex-item
。ご覧のとおり、そうではありません。どうして?
.flex-container {
display:flex;
padding:0 20%;
}
.flex-item {
flex-grow:1;
list-style-type:none;
border:1px solid black;
}
.big {
flex-grow:3;
}
<ul class="flex-container">
<li class="flex-item big">Why isn't this exactly three times the size of the other one?</li>
<li class="flex-item">Not really working like expected I don't think...</li>
</ul>
フレックスグローは、一般的にこのように誤解されています。フレックスグローは、残りのスペースがフレックスアイテム間でどのように配分されるかを制御するだけで、フレックスアイテムが互いに比例する大きさは制御しません。
あなたが探しているのは本当にこれだけです:
.flex-item {
width: 25%;
list-style-type:none;
border:1px solid black;
}
.big {
width: 75%;
}
こちらもご覧ください
作成者は、一般的な使用に対応するために不特定のコンポーネントを正しくリセットするため、フレックスグローではなくフレックスショートハンドを使用して柔軟性を制御することをお勧めします。
https://drafts.csswg.org/css-flexbox/#propdef-flex-grow
.flex-item {
flex: 1;
}
.big {
flex: 3;
}
これは実際の例です