div
既存の固定サイズではないサイズに非常に幅を追加しようとしていますdiv
。最小限の例を次に示します(jsfiddle)。
<html>
<head/>
<body>
<div style="float: right; border: 1px solid green;">
Some content
<div id="problematic-div" style="border: 1px solid red; overflow: auto;">
This_is_a_very_long_unbreakable_string_but_I_don't_want_it_to_have_the_ability_to_stretch_the_div<br/>
It_should_have_a_horizontal_scrollbar_instead
</div>
Some content here too
</div>
Main content goes here
</body>
</html>
何が起こるかというと、大きなインナーdiv
がアウターdiv
をストレッチさせてフィットさせます。div
外側のdivのサイズを変更せず(代わりに、内側がない場合のサイズを維持するため)、代わりに内側div
に水平スクロールバーを表示させたいと思います。
div
これは、アウターの大きさを知ることができ、インナーdivをそれに制限することができれば非常に簡単ですが、ここでは、アウターのサイズ基準を「すべてのインナーに合う幅を使用するwidth
」にしたいと思います。その広い内側を除いて要素。div
div
これを行うには、高さではなく幅のみdiv
のサイズ計算から内側を無視する必要があると思います。これを行う方法がわかりません。私はいくつかのことを試しました:
- 外側
div
をに設定してposition
からrelative
、内側をに設定しabsolute
ます。これは、外側div
が内側のスクロールバーによって引き伸ばされなくなった範囲で機能しますが、水平スクロールバーは表示されず、その位置は外側のdivの左上隅から0.0になり、一部と重なっています。外部divのコンテンツ - 内側の
div
フロートを作成し、次のように2つの要素の間にラップclear: both
します。これにより、外側の要素が伸びます。
。
<div style="clear: both;"></div>
<div id="problematic-div" style="border: 1px solid red; float: left; overflow: auto;">
This_is_a_very_long_unbreakable_string_but_I_don't_want_it_to_have_the_ability_to_stretch_the_div<br/>
It_should_have_a_horizontal_scrollbar_instead
</div>
<div style="clear: both;"></div>
Some content here too
- いくつかのMozillaベンダーのプレフィックス
width
(min-content
、、 )ですがfit-content
、available
どれも私が望む効果を持っていないようです
要するに、このページにある上記のHTMLコードのような効果が欲しいのですが、このページでは、質問コンテナに固定幅を設定することでそれを実現しています。そのようなことは可能ですか?