css - 使用 IE 11 在 <td> 中填充导致渲染问题

标签 css internet-explorer

我有一个表格,其中有一个特殊颜色编码的跨度,用于指定表格中一行的状态。 CSS 似乎在 Chrome 和 FF 中呈现得很好,但在 IE 中,红色范围似乎没有呈现 height:100%正确。我注意到它与添加到 td 的填充有关和 button .好像IE计算了height:100%在检查子元素的填充之前。

请参阅此处转载:http://jsfiddle.net/vkjbu3cd/1/

更新

所以经过更多的观察。我发现 IE 未计算行内其他元素(即按钮)的填充。如果我填充 <button> 0 那么 Chrome 和 IE 都会计算 <td>高度为 20px。但是,如果我将填充放回按钮上,Chrome 现在会计算 <td>高度为 32px,而 IE 仍在计算 20px.... 为什么 IE 必须这样做!!!?!?

最佳答案

很奇怪。

一个 hack 是向 blob 添加一个大得离谱的高度:

.blob {
  height: 500%;
}

因为它的 td 父级有 overflow:hidden,所以这不会导致问题。

更新

鉴于 blob 可能有内容,您可以遍历所有 blob 元素,并像这样硬编码它们的高度:

var blob = document.querySelectorAll('.blob');
for(var i = 0 ; i < blob.length ; i++) {
  blob[i].style.height= blob[i].parentNode.offsetHeight+'px';
}

关于css - 使用 IE 11 在 <td> 中填充导致渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236573/

相关文章:

html - 如何对齐部分 div 内容?

html - Internet Explorer 10 - 文本呈现在中心正下方

javascript - IE7和IE8下拉框中不显示更大的内容

c# - 在 IE 中打印 div 的内容

html - 如何使div垂直和水平居中?

css - 我在 div 元素位置有问题

css - IE表格后台bug

css - 我正在 Mac 上开发一个网站,所有主流浏览器都能正确呈现它。但是我很困惑如何让它在 IE 中正确显示

html - 删除按钮上的 3D 推送效果

javascript - 选择特定 radio 时更改 "p"和 "img"的内容