我正在尝试向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
浮动,并将其包裹在两个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
width
(min-content
,fit-content
, )的一些 Mozilla 供应商前缀available
,但它们似乎都没有我想要的效果
简而言之,我想要一个很像上面这个页面上的 HTML 代码列表的效果,但是这个页面通过在问题容器上设置一个固定的宽度来实现它。这样的事情可能吗?