我在这里问一个我知道的问题很简单,但我无法让它发挥作用。一旦用户将鼠标悬停在其上,我想将我的li标签的背景颜色更改为不同的颜色。
HTML:
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
CSS:
nav {
background-color: #333;
margin: 0;
overflow: hidden;
width: 100%;
text-align: right;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
list-style-type: none;
}
nav ul li a {
color: #aaa;
background-color: #333;
display: block;
line-height: 2em;
padding: 0.5em 0.5em;
text-decoration: none;
}
nav ul li:hover {
background-color: #666;
color: #000;
}
非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
在悬停中添加a,它可以正常工作
nav {
background-color: #333;
margin: 0;
overflow: hidden;
width: 100%;
text-align: right;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
list-style-type: none;
}
nav ul li a {
color: #aaa;
background-color: #333;
display: block;
line-height: 2em;
padding: 0.5em 0.5em;
text-decoration: none;
}
nav ul li a:hover {
background-color: #666;
color: #000;
}
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
答案 1 :(得分:1)
它不起作用的原因是li标签内有链接 - <a>
标签。那些在徘徊时呈现出自己的颜色。因此,您必须为li a:hover { color: ...}
答案 2 :(得分:0)
您对锚标记的样式会干扰您的li:hover
指令。
您必须将它们视为图层,尤其是当您将它们用作块元素时。锚标记的尺寸大于li标记的尺寸,因此您看不到悬停效果。我纠正了你的代码。这有效:
nav {
background-color: #333;
margin: 0;
overflow: hidden;
width: 100%;
text-align: right;
}
nav ul {
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
list-style-type: none;
background-color: #333;
}
nav ul li:hover {
background-color: #666;
color: #000;
}
nav ul li a {
color: #aaa;
background: transparent;
display: block;
line-height: 2em;
padding: 0.5em 0.5em;
text-decoration: none;
}
试着看看,如果你注意到我改变了什么。这有助于您首先了解错误。 :)