高级CSS导航悬停

时间:2012-06-25 22:04:28

标签: html css

请参阅此处查看我的问题:http://jsfiddle.net/FvBqA/126/

我的问题是,如果有意义,我希望能够悬停在锚点和li上并实现一个悬停状态。

目前,如果您将鼠标悬停在蓝色部分上,则只能看到蓝色(这是li),如果您将鼠标悬停在锚点上,则会显示li和锚点悬停 - 请注意这是正确的,但我只想要这个悬停状态当用户将鼠标悬停在锚点上时。

如果用户将鼠标悬停在列表项上,则不会显示任何内容。

HTML

<ul id="nav">
    <li>
        <a href="#">Home</a>
    </li>  
    <li>
        <a href="#">Services</a>
    </li>  
    <li>
        <a href="#">Contact</a>
    </li>        
</ul>

CSS

#nav li {
    float: left;
    padding: 0 0 0 13px;
}
#nav li a {
    display: block;
    height: 51px;
    text-align: center;
    color: #494949;
    font-size: 13px;
    padding: 35px 15px 0;
    border: 1px solid transparent;
    text-decoration: none;                
}
    #nav li:hover {
        background: blue;    
}
#nav li:hover a {
    background: red;
    border: 1px solid #2596c0;
    color: #fff;
}

1 个答案:

答案 0 :(得分:2)

根据您在悬停在li上时想要蓝色和红色的理解(无论是否悬停在a上),只需指定:hover伪类在li上使用后代选择器定位a元素:

#nav li:hover a {
    background: red;
    border: 1px solid #2596c0;
    color: #fff;
}

JS Fiddle demo