html - IE8 拉伸(stretch)表格单元格高度

标签 html css internet-explorer html-table

我有一个基于表格的页面布局,尽管我很想用更现代的标记对其进行重组,但这不是一种选择。该布局使用一个跨越两行的单元格作为右侧的侧边栏,而左上角的单元格包含一个简单的标题,左下角的单元格包含页面的主要内容。左上单元格的高度是固定的,下单元格和右单元格的高度没有指定。我创建了一个简化示例来说明我的问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
.fixed { height: 100px; }

table { border: 1px solid #000; }
td { border: 1px solid #ddd; vertical-align: top; }
tr { border: 1px solid #cfc; }
* { padding: 15px; }
</style>
</head>
<body>

<table>
<tr class="fixed">
<td>left</td><td rowspan="2"><div style="height: 500px;">right</div></td>
</tr>

<tr class="stretch">
<td>left</td>
</tr>

<tr class="footer">
<td colspan="2">footer</td>
</tr>

</table>

</body>
</html>

我已将右列内联的高度设置为 500 像素,以模拟比左两列的高度更高的内容。这在现代浏览器中的行为符合预期:左上角单元格的高度保持固定,下方单元格拉伸(stretch)以填充额外空间。但在 IE8 中,两个左侧单元格都被垂直拉伸(stretch)。我需要顶部单元格来保持其固定高度。如何仅使用 CSS 让 IE8 遵守为左上角单元格指定的高度?

编辑: 我没有在右列 td 上设置高度,而是在右列内的 div 上设置高度。

最佳答案

我认为 Jeroen 是正确的,没有针对此问题的纯 CSS 解决方案。只要表格中的单元格设置了 rowspan,IE 就会忽略在这些行上设置的任何显式高度。解决方案是永远不要使用 rowspan。在我的情况下,我能够通过将跨越两行的内容放在第二行中,将第一行中的单元格留空,并使用负边距将内容的开头向上移动到第一行来规避问题.我希望这对其他人有帮助。如果有人确实有纯 CSS 解决方案,我会接受它作为答案。

关于html - IE8 拉伸(stretch)表格单元格高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998500/

相关文章:

javascript - JQuery/CSS 触发动画

html - Internet Explorer 中的图像很大,而 firefox 和 chrome 都很好

javascript - 保存完整网站 - Internet Explorer 和 javascript 生成的代码

html - Chrome 中的 CSS 旋转切割表

javascript - onclick 获取子 ID

javascript - 专注于每个输入和每次滚动顶部

CSS 按钮无法在 IE 中正确呈现

html - 指定 iframe 的内容而不是页面的 src 属性

javascript - Base64 编码的图像在 IE 中不显示

html - 如何强制分隔线的位置,并将 Logo 放置在特定位置?