article
この例では、フレックス アイテム ( )がフレックス親/コンテナー ( )からオーバーフローしflex-grow: 1;
ないようにするにはどうすればよいですか?main
この例ではarticle
テキストのみですが、他の要素 (table
など) が含まれている場合もあります。
main, aside, article {
margin: 10px;
border: solid 1px #000;
border-bottom: 0;
height: 50px;
}
main {
display: flex;
}
aside {
flex: 0 0 200px;
}
article {
flex: 1 0 auto;
}
<main>
<aside>x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x </aside>
<article>don't let flex item overflow container.... y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y </article>
</main>
ベストアンサー1
私の場合は、min-width: 0;
オーバーフローする div に単に追加するだけでオーバーフローを防ぐことができました。
article {
min-width: 0;
}
説明:
min-width
フレックス コンテキストの場合: デフォルトmin-width
値は0
(ゼロ) ですが、フレックス アイテムの場合は ですauto
。これにより、ブロック要素が必要以上に多くのスペースを占め、オーバーフローが発生する可能性があります。
min-width
は競合する に勝つように定義されておりwidth
、max-width
つまり、要素の幅が暗黙の自動幅を下回るとすぐに が作動し、min-width:auto
要素が縮小しないようにします。
修正方法は明らかです:min-width: 0
これは、この要素が最小幅を占める権利がないことをブラウザに伝え、使用可能な幅のみを占めて適切にレンダリングされるようになります。
注意flex-shrink
: flex-shrink はここでは役立つように思えますが、実際には役に立ちません。説明されている問題は、要素のコンテンツに基づいた要素のサイズ設定に関するものですが、flex-shrink は同じコンテキスト内の他の flex 要素に対する相対的な縮小を定義します。ソース