有没有一个CSS父母选择器?

如何选择作为锚元素的直接父元素的<li>元素?

在例子中,我的CSS会是这样的:

li < a.active {
    property: value;
}

很显然,有些方法可以用JavaScript做到这一点,但我希望有一些原生存在于CSS Level 2的解决方法。

我尝试设计的菜单是由CMS拼出的,因此我无法将活动元素移动到<li>元素中(除非我主题菜单创建模块,我不想这么做)。

有任何想法吗?


目前没有办法在CSS中选择元素的父元素。

如果有办法做到这一点,它将在当前的CSS选择器规范中:

  • 选择器3级规格
  • CSS 2.1选择器规格
  • 同时,如果您需要选择父元素,则必须使用JavaScript。


    选择器4级工作草案包含:has()伪类,与jQuery实现相同。 截至2018年5月, 这仍然不受任何浏览器支持

    使用:has()原始问题可以用下面的方法解决:

    li:has(> a.active) { /* styles to apply to the li tag */ }
    

    我不认为你只能在CSS中选择父项。

    但是,因为你似乎已经有了一个.active类,将这个类移动到li (而不是a )会不会更容易? 这样,你可以只访问lia通过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

    上一篇: Is there a CSS parent selector?

    下一篇: View the change history of a file using Git versioning