有没有一个CSS父母选择器?
如何选择作为锚元素的直接父元素的<li>
元素?
在例子中,我的CSS会是这样的:
li < a.active {
property: value;
}
很显然,有些方法可以用JavaScript做到这一点,但我希望有一些原生存在于CSS Level 2的解决方法。
我尝试设计的菜单是由CMS拼出的,因此我无法将活动元素移动到<li>
元素中(除非我主题菜单创建模块,我不想这么做)。
有任何想法吗?
目前没有办法在CSS中选择元素的父元素。
如果有办法做到这一点,它将在当前的CSS选择器规范中:
同时,如果您需要选择父元素,则必须使用JavaScript。
选择器4级工作草案包含:has()
伪类,与jQuery实现相同。 截至2018年5月, 这仍然不受任何浏览器支持 。
使用:has()
原始问题可以用下面的方法解决:
li:has(> a.active) { /* styles to apply to the li tag */ }
我不认为你只能在CSS中选择父项。
但是,因为你似乎已经有了一个.active
类,将这个类移动到li
(而不是a
)会不会更容易? 这样,你可以只访问li
和a
通过css。
你可以使用这个脚本。
*! > input[type=text] { background: #000; }
这将选择文本输入的任何父项。 但是等等,还有更多。 如果你愿意,你可以选择一个指定的父母:
.input-wrap! > input[type=text] { background: #000; }
或者在它处于活动状态时选择它:
.input-wrap! > input[type=text]:focus { background: #000; }
看看这个HTML:
<div class="input-wrap">
<input type="text" class="Name"/>
<span class="help hide">Your name sir</span>
</div>
您可以在input
处于活动状态时选择span.help
并显示它:
.input-wrap! .help > input[type=text]:focus { display: block; }
还有更多的功能; 只需查看该插件的文档。
顺便说一句,它在IE中工作。
链接地址: http://www.djcxy.com/p/523.html