What are the differences between flex-basis and width?で説明できないwidth
とflex-basis
の動作の違いに遭遇しました。幅とフレックスベースの差
.outer {
display: flex;
background: yellow;
padding: 10px;
}
.middle {
display: flex;
flex-shrink: 0;
background: red;
padding: 10px;
}
.inner {
flex-basis: 258px;
flex-shrink: 0;
display: flex;
flex-grow: 0;
background: green;
}
.inner2 {
width: 258px;
flex-shrink: 0;
display: flex;
flex-grow: 0;
background: green;
}
<div class="outer">
<div class="middle">
<div class="inner">
hello
</div>
</div>
</div>
<div class="outer">
<div class="middle">
<div class="inner2">
hello
</div>
</div>
</div>
Here私がいる問題を示す一例です。しかし、フレックスコンテナ(.middle
要素)は、その子要素(.inner
要素)の本来の幅を無視し、テキストのみを考慮に入れているようです。
この違いは、Chrome、FF、Safariの最新バージョン(IE11/Edgeではなく)で確認できます。
明確化:私はなぜIE11/Edgeが動作するのか尋ねていません。その行動(この場合)は実際に私にとっては論理的なようです。私は他のすべてのブラウザに違いがあるのかと尋ねています。
更新:Edge 13はIE11のように動作します。
これは興味深い発見です。 [** spec **]によると(https://drafts.csswg。org/css-flexbox /#flex-basis-property)、この例では 'width'と' flex-basis'の間にレンダリングの違いはありません。私はそれがブラウザの奇抜だと言うだろう。さらに興味深いのは、IEとクロムとFFはマークを外している間、行動を正しく得るようだ。これはあらゆる種類の疑問と疑念を提起します:-) –
これは、ネストされたフレックス要素が親を成長させないことを思い起こさせます(http://stackoverflow.com/q/36968138/1529630) – Oriol