【发布时间】:2013-08-31 12:59:23
【问题描述】:
这个问题似乎在 stackoverflow 上至少被问过 10 次,但实际上没有一个问题有答案。这一点略有不同,因为该问题出现在 Firefox 中。
我有一个 table 高度 100% 和一个 tr 高度 100%。我将td 的边框设置为我能看到的东西。我看到td 达到预期的 100%。我在那个td 中放了一个div 并将其设置为100% 的高度。它在 Chrome 中是 100%。在 Firefox 中不是 100%。
我该如何解决这个问题?
例子
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
}
.full {
width: 100%;
height: 100%;
border: 10px solid red;
}
#content {
width: 100%;
height: 100%;
}
#content>table {
width: 100%;
height: 100%;
}
#content>table>tbody>tr>td {
border: 10px solid blue;
width: 50%;
}
#container {
width: 100%;
height: 100%;
border: 10px solid black;
}
</style>
</head>
<body>
<div id="content">
<table>
<tr>
<td>
<div id="container">
<div class="full">
foo
</div>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
这是一个sn-p
body, html {
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
}
.full {
width: 100%;
height: 100%;
border: 10px solid red;
}
#content {
width: 100%;
height: 100%;
}
#content>table {
width: 100%;
height: 100%;
}
#content>table>tbody>tr>td {
border: 10px solid blue;
}
#container {
width: 100%;
height: 100%;
border: 10px solid black;
}
<div id="content">
<table>
<tr>
<td>
<div id="container">
<div class="full">
foo
</div>
</div>
</td>
</tr>
</table>
</div>
在 Chrome 中你会看到
bbbbbbbbbbb
b#########b
b#rrrrrrr#b
b#r r#b
b#r r#b
b#r r#b
b#rrrrrrr#b
b#########b
bbbbbbbbbbb
而在 Firefox 中是
bbbbbbbbbbb
b b
b#########b
b#rrrrrrr#b
b#r r#b
b#rrrrrrr#b
b#########b
b b
bbbbbbbbbbb
其中 b = 蓝色 td。 # = 应该是 100% 的黑色 div。 r = 红色内部 div 也应该是 100%(显然在任何一种情况下都是如此)。是黑色的那个是错的。
在这种情况下,我必须修复哪些 CSS 才能让 Firefox 表现得像 Chrome?
PS:是的,我需要一张桌子。我正在显示表格数据。上面的示例被简化为单个单元格以简化调试。
【问题讨论】:
-
您缺少
</tr> -
修复了缺少的
</tr>,但这并不能解决问题 -
确实如此。我不知道是否会有一个 完美 修复那个。关于它有一个有趣的thread。
-
IE11 和 Firefox 有同样的问题,结果看起来一样。下面的解决方案也适用于 IE11。
标签: css