首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS悬停事件,如何触发父级效果

问CSS悬停事件,如何触发父级效果
EN

Stack Overflow用户
提问于 2013-06-01 03:01:23
回答 3查看 2.9K关注 0票数 4

我有一个下拉菜单<ul/>,当鼠标悬停在上面时,它会显示第二个列表<ul/>。

因此:

代码语言:javascript
复制
<ul id="NavBar">
    <li><a href="#">News & Press Releases</a>
        <ul class="NavBar_drop">
            <li><a href="#">OCPO Home</a></li>
            <li><a href="#">Press Releases</a></li>
            <li><a href="#">Ocean County Government</a></li>
        </ul>
    </li>
</ul>

当您将鼠标悬停在"News & Press Releases“锚点标签上时,会出现以下效果:

代码语言:javascript
复制
#NavBar > li > a:hover {
    -moz-border-radius: 5px 5px 0px 0px;
    -webkit-border-radius: 5px 5px 0px 0px;
    border-radius: 5px 5px 0px 0px;
    background: #F4F4F4;
    background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));
    color: #000;
}

但是,一旦您移动到任何子链接,例如"OCPO主页“,上述悬停的效果就会消失。显然,我必须强制它使用另一个CSS标记,但我不知道我做错了什么。这是我的尝试:

代码语言:javascript
复制
.NavBar_drop:hover #NavBar > li > a {
    -moz-border-radius: 5px 5px 0px 0px;
    -webkit-border-radius: 5px 5px 0px 0px;
    border-radius: 5px 5px 0px 0px;
    background: #F4F4F4;
    background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));
    color: #000;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-01 03:15:53

从技术上讲,您不能在父元素上触发效果。然而,考虑到您所陈述的问题,您实际上并不需要这样做。当您移动到子链接时,您将离开<a>;因此悬停效果将停止。更改选择器,以便在将鼠标悬停在父<li>上时触发选择器:

代码语言:javascript
复制
#NavBar > li:hover { 
    /* CSS Styles here... */
}
票数 2
EN

Stack Overflow用户

发布于 2013-06-01 03:18:13

对于Dre的回答,如果你只想在整个<li>上突出显示你的<a>,可以尝试使用下面的规则:

代码语言:javascript
复制
#NavBar > li:hover > a {

请参阅

票数 1
EN

Stack Overflow用户

发布于 2013-06-01 03:07:15

您不能在级联样式表中选择父元素,因此您尝试的内容是不可能的

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

https://stackoverflow.com/questions/16864098

复制
相关文章

相似问题

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