警告
已停用、不受支持的 Internet Explorer 11 桌面应用程序在某些版本的 Windows 10 上已通过 Microsoft Edge 更新永久禁用。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答。
本文介绍一种设计行为,即在 Internet Explorer 9 或更高版本中,不调整相对高度为 100% 的 DIV 标记的大小。
原始产品版本: Internet Explorer 9 及更高版本
原始 KB 数: 2674902
现象
在使用 Internet Explorer 9 或更高版本时,你正在使用一个具有绝对高度的表格,其中一行至少有两个单元格。 一个单元格包含一些文本,另一个单元格包含相对高度为 100% 的 DIV 标记。 文本不适合预设的高度,因此表格会调整尺寸。 DIV 标签保持在表格的初始固定高度,不会自动调整大小。
详细信息
此行为是设计使然,适用于所有受支持的 Internet Explorer 9 及更高版本的标准模式。
注意
使用 Internet Explorer 9 或更高版本时,在 Quirks 模式和 Quirks 模式仿真(QME)中,行为可能有所不同。
下面是上面概述的行为示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<body>
<table style="height:50px;" border="1px">
<tr>
<td style="height:100%">
<p>
this text does not fit and will resize the table<br />this text does not fit and will resize the
table<br />
this text does not fit and will resize the table<br />this text does not fit and will resize the
table<br />
</p>
</td>
<td style="height:100%; width:50px;">
<div style="height:100%; border:1px solid red;"></div>
</td>
</tr>
</table>
</body>
</html>
根据 W3 规范,单元格的内容区域高度不会受到行的高度的影响,任何额外的高度都应分配给单元格的内边距。 然后,单元格的子元素应根据单元格内容框的百分比高度确定其高度,该内容框并不受行高度的影响。
根据 CSS 2.1,单元格框的高度是内容所需的最小高度。 表单元格 height
的属性可能会影响行的高度(见上图),但它不会增加单元格框的高度。 小于行高度的单元格框会收到额外的上填充或底部填充。
有关详细信息,请参阅 定义文档兼容性。