【发布时间】:2015-04-30 02:11:30
【问题描述】:
我面临的问题是 IE 11 似乎在单个 <tr> 之间存在不一致的<td> 内部高度,而其他浏览器保持不变。
这是说明我的问题的笔:http://codepen.io/anon/pen/emKEBZ
在我的布局中,我有一个绝对定位的伪元素(绿色边框),我想在(外部)<td> 上显示它。我希望它始终与它所在的整个 <tr> 一样高。<td>s 的内容是动态的 - 我无法控制它的大小(就像我在笔中所做的那样)。
我给了它height: 100%,假设连续的每个<td> 具有相同的高度。
td {
position: relative;
}
td:before {
content: "";
display: block;
position: absolute;
top: 0;
left: -5px;
width: 3px;
height: 100%;
background-color: green;
}
是的,在 Firefox 和 Chrome 的同一行中的所有单元格中,该高度计算为相同的值:
但 IE 11 中每个单元格的高度不同:
问题似乎在于height: 100% IE 指的是包含<td> 的inner height(填充内的那个),而其他浏览器采用total height(高度+填充+边框)。即便如此,所有<td>s 沿一个<tr> 的内部高度在Firefox 中是相同的,而在IE 中则不同。这些方法中的任何一个是错误的吗?有没有办法强制 IE 像其他浏览器一样工作?
【问题讨论】:
-
你有 CSS 重置吗?
-
@JamesGeorgeDunn 是的,我愿意。
-
这是 IE 中的一个错误,最近已修复。我们渲染引擎的未来版本将与 Chrome/Firefox 类似。我最近为a similar question 提供了一个解决方法。过去,100% 是由 within 内容的高度决定的,而不是 cell 本身 的 offsetHeight。
-
我使用的一种解决方法是从顶部而不是底部引用绝对定位的单元格。很好地使用插图@Robert!
标签: css internet-explorer internet-explorer-11 css-tables