我正在尝试在一个宽度为100%的表格中使用水平滚动条div
:
<div id="div1" style="border: thin solid red; width: 800px; height: 150px;">
<table id="table1" style="border: thin solid yellow; width: 100%; display: block;">
<tr>
<td>
<div id="div2" style="border: thin solid black; width: 100%; height: 150px; overflow: auto;">
<div id="div3" style="border: thin solid blue; width: 1000px;">Hello</div>
</div>
</td>
</tr>
</table>
</div>
我不知道为什么,但所有浏览器都显示#div2
1000px宽而不是800px。那是为什么?
如何才能将其显示为仅800px宽并且在#div2
内有滚动条?
我不想指定<td>
标记的确切宽度。
答案 0 :(得分:5)
将div2
包含在style="table-layout: fixed; width: 100%"
的单个单元格表中似乎是一种解决方案。请参阅http://jsfiddle.net/gvqVN/1/。
答案 1 :(得分:1)
我记得,div-s和table-s彼此并不喜欢:)尝试给div2提供800px的宽度。还可以使用overflow:scroll
来设置滚动条这里是JSFiddle
代码:
<div id="div1" style="border: thin solid red; width: 800px; height: 150px;">
<table id="table1" style="border: thin solid yellow; width: 100%; display: block;">
<tr>
<td>
<div id="div2" style="border: thin solid black; width: 800px; height: 150px; overflow: scroll;">
<div id="div3" style="border: thin solid blue; width: 1000px;">Hello</div>
</div>
</td>
</tr>
</table>
</div>
答案 2 :(得分:0)
要对div div1
添加overflow: hidden
您的第一行应如下所示:
<div id="div1" style="border: thin solid red; width: 800px; height: 150px; overflow: hidden;">
答案 3 :(得分:0)
因为#div2
的子元素(#div3
)的宽度为1000px
。
答案 4 :(得分:0)
您必须使用800px更改div2上的100%宽度,否则它将只取其子div3的宽度。
编辑:如果你不能使用固定宽度,你可以设置要显示的所有表格元素:块 - 标准表有一个非常笨拙的处理维度的方法,这就是你的例子不起作用的原因。 当然,这个解决方案的缺点是你的桌子不再像桌子那样反应......