【发布时间】:2013-05-10 05:27:14
【问题描述】:
我有一个带有标题元素的div 和一个ul,我在其中加载了li 项目:
<div class="listContainer">
<header>Title</header>
<ul class="list">
<li>Test Element</li>
<li>Test Element</li>
<li>Test Element</li>
</ul>
</div>
在这种情况下,整个.listContainer 需要可见。
但是如果.list 为空,是否可以使用 CSS :empty 选择器隐藏整个容器,如下所示:
<div class="listContainer">
<header>Title</header>
<ul class="list">
</ul>
</div>
现在我正在使用:empty 选择器来隐藏ul,但需要隐藏整个.listContainer。
.list:empty { display: none; }
我知道使用 JavaScript 是可能的,但在这种情况下,我需要单独使用 CSS,但我不确定这是否可能。
【问题讨论】:
-
CSS 中没有父选择器,因此整个
.listContainer不会因为子.list为空(或其他)而受到影响。此外,要应用:empty,您需要一个 完全 没有内容的元素(甚至不是 textNode)。 -
我是这么认为的,但是谢谢!
-
最终,这可能使用CSS4 selectors:
.listContainer! > .list:empty(除了@DavidThomas 指出的textNode 问题)。 -
@MattCoughlin: nope, doesn't seem that way any more,至少不在选择器级别 4 中(目前,当然,这可能会发生变化)。
标签: css