我有一个HTML表格,<thead>
+ <tbody>
+ <tfoot>
。仅当<tfoot>
没有行时,我才需要显示<tbody>
。我知道如何使用JS / jQuery,但也许有一个纯CSS解决方案?
答案 0 :(得分:8)
使用:empty
Demo(当tfoot
没有行时显示tbody
table tbody:empty + tfoot {
display: table-footer-group;
}
table tbody + tfoot {
display: none;
color: red;
}
tfoot
有一些内容时隐藏tbody
table tbody:not(:empty) + tfoot {
display: block;
}
table tbody + tfoot {
display: none;
color: red;
}
说明:
修改次数太多,我只想提供2个选择器,首先是table tbody:empty + tfoot
,如果tfoot
是空的,则选择tbody
,第二个一个是table tbody:not(:empty) + tfoot
,如果tfoot
不为空,则会选择tbody
。
注意:我正在使用
+
这是一个相邻的选择器,所以如你所见,我 在tfoot
元素后面有tbody
元素,如果它在之前tbody
比您在选择反向时需要使用JS
或jQuery
CSS。另外,请确保使用Lister先生指出的display: table-footer-group;
tfoot
元素,而不是display: block;
答案 1 :(得分:2)
我担心只有在tbody
元素完全为空且不包含空格的情况下才可以使用CSS。例如,
<tbody>
</tbody>
不为空,因为它包含换行符(它有一个包含换行符的文本节点子)。 :empty
selector仅匹配没有子元素的元素。
如果,当tbody
元素没有行时,您可以指望<tbody></tbody>
元素严格为tbody:not(:empty) + tfoot {
display: none;
}
,您可以使用
{{1}}