gpt4 book ai didi

html - 具有最大高度的 div 内的表格

转载 作者:搜寻专家 更新时间:2023-10-31 08:21:33 25 4
gpt4 key购买 nike

我想要一个可滚动的表格。为此,我包装了一个 <table>进入<div>max-heightoverflow: auto .此外,<div>display: inline-block以确保 div 调整其宽度以适应基础表格。

<html>
<head>
<title>Test</title>
<style type="text/css">
div { max-height: 100px; display: inline-block;
overflow: auto; border: 1px solid red; }
td { border-bottom: 1px solid black; }
</style>
</head>
<body>
<div>
<table>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
</table>
</div>
</body>
</html>

在大多数浏览器(Firefox、Safari、Chrome)中,这会导致一个问题:如果表格长于 100 像素,则添加垂直滚动条而不会使 div 变宽,从而导致文本换行:

Firefox screenshot

在 IE 中它看起来“正确”:

IE screenshot

有办法解决这个问题吗?

最佳答案

http://jsfiddle.net/3VSZE/44/

所以发生的事情是在滚动条呈现之前,它正在设置表格的宽度 == 包含的 div 的宽度。因此,为了便于对话,假设 div 的宽度为 100px,滚动条的宽度为 10px,内表的宽度为 100px。当浏览器试图呈现 div 时,它假定总宽度为 100px。然后它以愉快的方式呈现 div 的内容。然后添加滚动条,div 的内容现在总宽度为 110px(表格 + 滚动条),但 div 的宽度仍然是 100px。所以基本上,浏览器试图在 100 像素的容器内渲染 110 像素,导致您看到的换行。

这就是为什么添加第二个 div,然后为该 div 留出边距以便滚动条适合的原因。我在 IE8 中试了一下,它并没有增加额外的空间(就像我最初认为的那样)。值得注意的是,当您在兼容模式下执行此操作时,div 会占据页面的整个宽度。这发生在我的例子中,也发生在你的例子中。我不知道如何解决这个问题;但这不是这个问题的主题。我没有时间试一试 IE7。

这有点简洁,而且当其中一行的内容更宽时它也能工作:

http://jsfiddle.net/3VSZE/75/

<html>
<head>
<title>Test</title>
<style type="text/css">
.a { border: 1px solid red; display: inline-block; }
.b { width: 100%; overflow: auto; max-height:100px; margin-right: 18px; }
td { border-bottom: 1px solid black; }
</style>
</head>
<body>
<div class="a">
<div class="b">
<table>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
<tr><td>bla bla bla bla bla</td></tr>
</table>
</div>
</div>
</body>
</html>

关于html - 具有最大高度的 div 内的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com