Css 为什么Firefox不使用空tbody呈现表的边框?

Css 为什么Firefox不使用空tbody呈现表的边框?,css,firefox,border,Css,Firefox,Border,当一个表的tbody为空时,Firefox无法正确呈现表单元格边框 但是如果使用伪选择器tbody:empty{display:none;}隐藏tbody元素,则所有内容都会按预期呈现 表格{ 边界塌陷:塌陷; } th, 运输署{ 边框:1px实心#000; } .固定t车身:空{ 显示:无; } 1. 2. 3. 1. 2. 3. 1. 2. 3. 1. 2. 3. 它很可能属于Firefox并且在Firefox上 旁注:虽然空的tbody在HTML5中有效,但每个行组中的单元格数应

当一个表的tbody为空时,Firefox无法正确呈现表单元格边框

但是如果使用伪选择器
tbody:empty{display:none;}
隐藏tbody元素,则所有内容都会按预期呈现

表格{
边界塌陷:塌陷;
}
th,
运输署{
边框:1px实心#000;
}
.固定t车身:空{
显示:无;
}

1.
2.
3.
1.
2.
3.

1. 2. 3. 1. 2. 3.
它很可能属于Firefox并且在Firefox上

旁注:虽然空的
tbody
在HTML5中有效,但每个行组中的单元格数应在一个表中匹配(使用
colspan
除外)

解决方法是在表格和单元格元素上分别绘制边框

table {
    border-collapse: separate; /*changed from collapse*/
    border-spacing: 0;
    border: 1px solid;
    border-width: 0 0 1px 1px; /*draw bottom and left borders*/
}
th,
td {
    border: 1px solid;
    border-width: 1px 1px 0 0; /*draw top and right borders*/
}

好的,谢谢你的提示。在我看来,拥有一个空的tbody是合法的(它仍然是一个标签)。因为,是的,这可能会发生(如果您在一些用户交互之后用javascript填充tbody),不客气。我编辑了答案,提出了一个解决办法。提醒像我这样的人:确保你的空
标签在同一行上打开和关闭。否则,内部的空白似乎会违抗
:empty
选择器,并阻止此技巧发挥作用。我使用的解决方法是在
中有一个空的
标记。