首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS选择器,用于获取前面的同级

CSS选择器,用于获取前面的同级
EN

Stack Overflow用户
提问于 2013-05-09 06:11:10
回答 2查看 5.2K关注 0票数 3

有没有办法使用纯CSS(3)来选择一个元素,它是具有特定类的元素的前一个同级元素?

即:

html:

代码语言:javascript
运行
复制
<div id='element-to-find'></div>
<div id='box1'></div>
<!-- a bunch more DOM elements between here --->
<div id='box2'>
      <div id='inner-box'></div>
</div>

css:

代码语言:javascript
运行
复制
#box1{ /*some styling*/ }
#box2{ /*some styling*/ }

#box2.active .....

现在,当#box2具有类active时,我想选择并对#element-to-find的样式做一些修改。有什么办法可以做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-09 06:21:05

在不知道更多选择器的情况下,您可以使用CSS的:not()选择器。

代码语言:javascript
运行
复制
div:not(#box1), div:not(#box2) {
    /*some style here*/
}

我只是建议当你选择box2并为它准备好样式时,也给你的#element-to-find一个类。

票数 2
EN

Stack Overflow用户

发布于 2013-05-09 06:38:12

在www风格的@w3.org邮件列表中,有多个提案提交给CSSWG,就像之前的兄弟组合:my one (2012),另一个12 (2013)。

Tab Atkins的常见答案是“我们已经有了主题指示器”。为了选择以前兄弟的后代(这对于以前的兄弟组合符来说是微不足道的,例如.example - UL > LI),他建议使用:matches()函数伪类,例如:matches(!UL + .example) > LI。subject indicator和:matches()目前都处于草案状态,还不能在现实世界中使用。

因此,您应该向element-to-find元素添加一个常规类,或者(如果您的active类不是通过JS添加的,则不太需要)使用JavaScript来模拟上一个兄弟组合器功能。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16451082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档