CSS悬停事件,如何触发父母的影响

时间:2013-05-31 19:01:23

标签: html css events hover anchor

我有一个下拉菜单<ul/>,会在悬停时显示第二个列表<ul/>

因此:

<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>

当您将鼠标悬停在“新闻与新闻稿”主播标记上时,会产生以下影响:

#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 Home”,上述悬停的效果消失。显然我不得不强迫它继续使用另一个CSS标签,但我不知道我做错了什么。这是我的尝试:

.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;
}

3 个答案:

答案 0 :(得分:2)

从技术上讲,无法触发对父元素的影响。但是,鉴于您所说的问题,您实际上并不需要这样做。当您移动到子链接时,您将移开<a>;因此悬停效应停止了。更改选择器,以便当您将鼠标悬停在父<li>上时触发它:

#NavBar > li:hover { 
    /* CSS Styles here... */
}

答案 1 :(得分:1)

除了Dre的答案之外,如果您只想在整个<a>上突出显示<li>,请尝试使用此css规则:

#NavBar > li:hover > a {

请参阅working demo

答案 2 :(得分:0)

您无法在级联样式表中选择父元素,因此您无法尝试