【发布时间】:2014-10-10 11:16:28
【问题描述】:
我有以下代码:
<div class="photos-wrapper" id="detailPhoto">
<div class="pseudo">
<a href="#/123456/">fixedTEXT</a>
</div>
<div class="image-wrapper">
<a href="#"></a>
</div>
<div class="activites">
<a href="#"></a>
</div>
<div class="commentaire">
<a href="#"></a>
</div>
</div>
我想在第一个和主要的<div class="photos-wrapper" id="detailPhoto"> 中包含我自己的 CSS 样式,但唯一的方法是识别孙选择器,即<a href="#/123456/">,因为有多次出现相同的代码。
也许当我展示我尝试过的东西时会更清楚一点:
a[href*="123456"] > div.pseudo > div.photos-wrapper[id^="detailPhoto"] {
display: none !important;
}
div.photos-wrapper[id^="detailPhoto"] < div.pseudo < a[href*="123456"] {
display: none !important;
}
这就是我尝试这样做的方式,但它显然不起作用。 我可能在这里尝试做的事情称为父选择器,但我不太确定。
@编辑 让我们看一下这段代码,它实际上更详细: http://jsfiddle.net/60ezqtL7/
目标是通过 display: none; 样式隐藏包含完全相同值的整个 div 即 <a href="#/000000/">PHOTO 1</a>
【问题讨论】:
-
CSS 在一个方向上工作,你可以选择一个孩子或后代,而不是父母或祖先。有一个提议的父选择器作为 CSS4 的一部分,但由于 CSS3 仍处于草案阶段,所以不要等待它。它可以用 javascript 完成,只需 jQuery 库
-
附带说明,为什么
DIV[class="photos-wrapper"]而不是div.photos-wrapper? -
这正是我尝试过的,但在 html 代码中,就像我说的那样,同一部分代码多次出现。
-
是的,鉴于您的更新,您将需要一些 javascript。我会看看我能想出什么。您是要隐藏所有具有相同值的 div,还是显示第一个并隐藏其他 div?
-
附带说明,如果这些是由某些服务器端代码生成的,那么处理那里的重复项会好得多。
标签: html css css-selectors parent-child