仅使用CSS:选择整个文档中第一个出现的类
我们有这样一个DOM:仅使用CSS:选择整个文档中第一个出现的类,css,css-selectors,Css,Css Selectors,我们有这样一个DOM: <div class="outer"> <div class="inner"> <!--// No "copyright" in this node //--> <div class="content">...</div> </div> <div class="inner"> <div class="content">..
<div class="outer">
<div class="inner"> <!--// No "copyright" in this node //-->
<div class="content">...</div>
</div>
<div class="inner">
<div class="content">...</div>
<div class="copyright">...</div> <!--// DISPLAY THIS ONE //-->
</div>
<div class="inner">
<div class="content">...</div>
<div class="content">...</div>
<div class="content">...</div>
<div class="copyright">...</div> <!--// Hide this one //-->
</div>
<div class="inner">
<div class="content">...</div>
<div class="content">...</div>
<div class="copyright">...</div> <!--// Hide this one too, etc. //-->
</div>
<!--// etc. //-->
</div>
...
...
...
...
...
...
...
...
...
...
除第一个元素外,所有具有“版权”类别的元素都必须隐藏
我们试图应用这一点,但不幸的是没有成功。它必须是唯一的CSS解决方案。有什么想法吗
谢谢你的帮助 在这种情况下,每个
.copyright
都是.internal
中的第一个也是唯一一个,因此您需要选择by.internal
。如果你不需要对第一个孩子应用任何特殊规则,你不需要使用我在另一个问题中描述的方法;只需使用此选项隐藏其他元素:
.inner ~ .inner .copyright {
display: none;
}
试试这个
太好了,谢谢!顺便说一句,在Firefox中打印站点时,我需要使用第一个事件作为页脚:@media print{.copyright{position:fixed;bottom:0;}.inner~.inner.copyright{display:none;}}抱歉再次打扰,但我们忘记了一个重要的细节:如果第一个“inner”节点不包含“版权”,该怎么办类?这意味着您必须检查
.internal
是否包含.copyright
,这是纯CSS无法做到的。我们忘记了一个重要的细节:如果第一个“内部”节点不包含“版权”类怎么办?
div.inner > .copyright { display:none; }
div.inner:first-child .copyright { display:block; background:#000; }