作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定下面的 HTML,您将如何选择所有不是 .itemcontainer(s) 后代的 .name(s)。
类似于 .group .header .name:not(源自 .itemcontainer)
我知道这可以使用 jQuery 或通过添加其他类很容易地完成,但是任何纯 css 解决方案?我一直没能找到“不是后代”选择器...
<div class='group'>
<!-- Any number of ancestors of any type -->
<div class='header'>
<!-- Any number of ancestors of any type -->
<div class='name'>
SELECT ME!!!
</div>
</div>
<div class='body'>
<div class='itemcontainer'>
<div class='item1'>
<!-- Any number of ancestors of any type -->
<div class='header'>
<!-- Any number of ancestors of any type -->
<div class='name'>
DON'T SELECT ME!!!
</div>
</div>
<div class='body'>
...
</div>
</div>
...
</div>
</div>
...
</div>
谢谢!
最佳答案
我不知道有什么方法可以在 CSS 选择器中排除此类;但您可以为所有人定义一个规则,然后为特定的取消定义。
.group .header .name {
background-color: green;
}
.group .itemcontainer .header .name {
background-color: inherit;
}
编辑:考虑到您要实现的目标(取自对我的回答的评论),不将它作为纯 CSS 选择器来做更有意义,但确实使用 jQuery:
$('.group .header .name').filter(':not(.itemcontainer *)').click(onClick);
关于css - 元素的选择器不是另一个元素的后裔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908183/
我刚刚在 Stack 上看到这个问题得到了正确的回答。 问题是如何选择每个 .class1 元素后的前两个 li。 Something Important I want this I
我是一名优秀的程序员,十分优秀!