2013-10-17 42 views
3

我有一个HTML表格,其中有<thead> + <tbody> + <tfoot>。仅当<tbody>没有行时,我需要显示<tfoot>。我知道如何用JS/jQuery来做,但也许有一个纯粹的CSS解决方案?CSS。仅当TBODY没有行时才显示TFOOT

+1

一个问题应该是独立的,但这并不意味着称号。 –

+0

你应该澄清TBODY指的是什么。 'tfoot'元素之前的'tbody'元素? –

回答

7

使用:empty

Demo(显示tfoottbody没有行)

table tbody:empty + tfoot { 
    display: table-footer-group; 
} 

table tbody + tfoot { 
    display: none; 
    color: red; 
} 

隐藏tfoottbody有一些内容

table tbody:not(:empty) + tfoot { 
    display: block; 
} 

table tbody + tfoot { 
    display: none; 
    color: red; 
} 

Demo 2


说明:

太多的修改,我只是想提供2种选择,第一是table tbody:empty + tfoot这将选择tfoot如果tbody是空,而第二个是table tbody:not(:empty) + tfoot这将选择tfoot如果tbody不是空的。

注:我使用+这是一个邻近的选择,所以你看,我 有tfoot元素,在tbody元素之后,如果是前 tbody比你需要使用JSjQuery你在 CSS中选择反向。此外,请确保您使用display: table-footer-group;由利斯特先生为tfoot元指出,不display: block;

+0

当前面的'tbody'没有行时,代码*隐藏* tfoot'。问题是如何仅在这种情况下显示*。 –

+0

@ JukkaK.Korpela感谢您指出,选择器是完美的,只需要再添加1个:) –

+1

我已经明白了。非常感谢! – DEgorov

2

恐怕可以用CSS只的情况下完成了tbody元素完全是空的,不甚至包含空白。例如,

<tbody> 
</tbody> 

不是空的,因为它包含换行符(它具有包含换行符的文本节点子节点)。 :empty selector只匹配没有孩子的元素。

如果你可以严格地具有tbody元素<tbody></tbody>计数,当它没有行,你可以使用

tbody:not(:empty) + tfoot { 
    display: none; 
} 
+0

是的,空白的数量。但这对我来说不是问题。 – DEgorov

相关问题