html – IE8拉伸表格单元格高度

我有一个基于表格的页面布局,并且我想用更现代的标记重新构建它,这不是一个选项.布局使用跨越两行的单元格作为右侧的侧边栏,而左上角的单元格包含一个简单的标题,左下方的单元格包含页面的主要内容.左上角的单元格具有固定的高度,并且未指定底部单元格和右侧单元格的高度.我创建了一个简化示例来说明我的问题:
<!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>

我已将右列的高度设置为500px,以模拟高于左侧两列高度的内容.这在现代浏览器中的表现如预期:左上角单元格的高度保持固定,下方单元格拉伸以填充额外空间.但是在IE8中,两个左侧细胞都是垂直拉伸的.我需要顶部单元格来保持其固定高度.如何让IE8仅使用CSS来表示为左上角单元格指定的高度?

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

解决方法

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

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在&#39;&#39;,则表示换行,用&#39;&#39;切割。
代码实现 option = { backgroundColor: &amp;#39;#080b30&amp;#39;, tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...