单一导航的特定背景 link

Specific background for single nav link

想了解如何更改单个导航 link 以具有与其他导航不同的背景悬停颜色。

我试过 #nav #contact.hover 和 #nav #contact:hover 都没有用。

<div id="nav">
    <ul>
        <li id="home"><a href="#">Home</a></li>
        <li id="service"><a href="#">Service</a></li>
        <li id="parts"><a href="#">Parts</a></li>
        <li id="contact"><a href="#">Contact</a></li>
    </ul>
    <div class="clearall"></div>
</div>
</html>

CSS:

.clearall {
    clear:both;
}
#nav {
    background:#333;
}
#nav ul li {
    float:left;
    margin-right:0px;
}
#nav ul li a {
    color:#fff;
    text-transform:uppercase;
    padding:10px 20px;
    display:block;
    text-decoration:none;
}


#nav ul li a:hover {
    background-color:black;
}



Should change the contact element in the nav to have a background hover color of white

只需正确选择选择器即可。我认为您遇到了问题,因为您的悬停基本样式过于具体,胜过大多数覆盖。

#nav ul li:hover a

...可以很容易地更改为更容易覆盖的更简单的选择器,使用 ID 而不是 类 也增加了特异性问题。

.clearall {
    clear:both;
}
#nav {
    background:#333;
}
#nav ul li {
    float:left;
    margin-right:0px;
}
#nav ul li a {
    color:#fff;
    text-transform:uppercase;
    padding:10px 20px;
    display:block;
    text-decoration:none;
}
#nav ul li:hover a {
    background-color:black;
}
#nav ul li#contact:hover a {
  background: url('https://picsum.photos/100');
}
<div id="nav">
    <ul>
        <li id="home"><a href="#">Home</a></li>
        <li id="service"><a href="#">Service</a></li>
        <li id="parts"><a href="#">Parts</a></li>
        <li id="contact"><a href="#">Contact</a></li>
    </ul>
    <div class="clearall"></div>
</div>

您可以通过在 CSS 中使用 :last-child psuedo-class 来完成此操作。

这是一个带有修复程序的代码笔,但我将在下面描述我所做的:https://codepen.io/Athys/pen/WBdYdZ

我将 :last-child 添加到 li 选择器,因为 "contact" link 显示为最后一个列表项(最后一个 li)。然后,我向 a 选择器添加了 :hover psuedo-class 并赋予它与其他 a 元素不同的悬停颜色和 text-color。希望这可以帮助。