在CSS(任何版本)中,有没有像jQuery中的:has()
选择器一样的任何其他方式?CSS是否有类似jQuery的:has()?
jQuery(':has(selector)')
描述:选择哪个 包含 指定选择器相匹配的至少一种元素的元素。
http://api.jquery.com/has-selector/
在CSS(任何版本)中,有没有像jQuery中的:has()
选择器一样的任何其他方式?CSS是否有类似jQuery的:has()?
jQuery(':has(selector)')
描述:选择哪个 包含 指定选择器相匹配的至少一种元素的元素。
http://api.jquery.com/has-selector/
没有,没有。 CSS设计的方式不允许与祖先或前面的兄弟姐妹匹配的选择器; (和
>
),继兄弟姐妹(~
和+
)或特定的子女(:*-child
)。唯一的祖先选择器是:root
伪类,它选择文档的根元素(在HTML页面中,当然是html
)。
如果您需要使用:has()
将样式应用于要查询的元素,则需要向其添加CSS类,然后按该类添加样式as suggested by Stargazer712。
选择器4草案提到了一个主题选择器,尽管它与jQuery的':has()'选择器有不同的语义,如果它得到标准化和实施。 – BoltClock 2012-01-04 22:49:48
号来实现这一点的最佳方法是使用jQuery:
CSS文件:
.myAwesomeClass {
...
}
js文件:
jQuery(':has(selector)').addClass("myAwesomeClass")
其中selector
是不管它是你最初试图匹配。
*最好的*方法是组织你的CSS和标记,使它不必依靠JavaScript,即使CSS有时候有点痛苦。 – 2011-06-08 13:53:54
你想在has() - 中选择什么? – mightyplow 2011-06-08 12:50:27
这不就是一个正常的孩子选择器吗?选择器中的规则将应用于所有匹配的元素。 – andyb 2011-06-08 12:51:33
@andyb:':has()'是一个有条件的伪类,类似于':not()'。匹配的元素是围绕伪类的选择器,不在括号中。 – BoltClock 2011-06-08 12:53:21