仅使用CSS:选择整个文档中第一个出现的类

仅使用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">..

我们有这样一个DOM:

<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; }