justify-content: flex-start
のflexコンテナがあります。コンテナのサイズより少ないスペースをフレックスアイテムが使用するため、右側がオーバーフローします。
フレックスコンテナで明示的な幅を設定する以外に、オーバーフローを削除するためにwidth: auto
と同等の方法を使用する方法はありますか?
コンテナをコンテナの幅に拡張するのではなく、コンテナをアイテムの幅にしたい場合...
display:flex
をdisplay:inline-flex
に変更することで取得できる場合があります
Mahksが提案するように、 フレックスコンテナをインラインにする を使用できます。ただし、インラインに配置することがレイアウトに適さない場合は、フレックスコンテナ(フレックスアイテムではなく)をフロートさせることもできます。
Floats は、内容に合わせてシュリンクラップします。これは、ブロックレベルのフレックスコンテナでも同じです。インラインレベルのフレックスコンテナは、親インラインフォーマットコンテキストでレイアウトされている場合、 inline-block box と同様に動作します。つまり、デフォルトでコンテンツに合わせて縮小されます。
width: min-content
(CSS3は「外因性」ではなく「内因性」)
display: inline-flex
インラインかどうかを気にしない場合
段落でwidth: min-content
を使用すると、最長のWordが幅を決定します。
.flex-container {
display: flex;
}
.flex-inline-container {
display: inline-flex;
}
.width-min-content {
width: min-content;
}
.row-direction {
flex-direction: row;
border: 0.0625rem solid #3cf;
}
.col-direction {
flex-direction: column;
border: 0.0625rem solid Magenta;
}
flex
<div class='flex-container row-direction'>
<input />
<input type='datetime-local'>
</div>
<div class='flex-container col-direction'>
<input />
<input type='datetime-local'>
</div>
<br>
flex width: min-content
<div class='flex-container width-min-content row-direction'>
<input />
<input type='datetime-local'>
</div>
<div class='flex-container width-min-content col-direction'>
<input />
<input type='datetime-local'>
</div>
<br>
inline-flex
<div class='flex-inline-container row-direction'>
<input />
<input type='datetime-local'>
</div>
<div class='flex-inline-container col-direction'>
<input />
<input type='datetime-local'>
</div>
あなたの質問についてはわかりませんが、:
[〜#〜] demo [〜#〜]: http://jsfiddle.net/jn45P/
flex-grow:1;
を使用してスペースを埋め、フレックスアイテムの柔軟性を有効にする必要があります
<div class="o">
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
</div>
<div class="o flex">
<div>a</div><div>a</div><div>a</div><div>a</div><div>a</div>
</div>
div.o
{
border:2px red solid;
padding:2px;
width:500px;
flex-direction:row;
display:flex;
justify-content:flex-start;
}
div.o > div
{border:2px red solid;margin:2px;}
div.o.flex > div
{flex:1 1 auto;} /* enable flexibility on the flex-items */