这个问题似乎在 stackoverflow 上至少被问过 10 次,但实际上没有一个问题有答案。这一点略有不同,因为该问题出现在 Firefox 中。
我的table
身高是 100%,tr
身高是 100%。我将边界设置为td
我能看到的东西。我看到td
100% 符合预期。我放了一个div
并将td
其设置为高度 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>
这是一个片段
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:是的,我需要一张桌子。我正在显示表格数据。上面的示例被简化为单个单元格以简化调试。