试图了解CSS以及在元素上使用悬停psuedo类。每当我在导航栏中选择一个选项卡时,背景颜色会改变颜色(这就是我想要的)。但是,当我移开锚文本时,文本会变回白色。
理想情况下,我想要的是导航选项卡将背景颜色变为白色,并在鼠标悬停时将文本同时变为黑色。这是代码:
<head>
<link rel="stylesheet" href="css.css" />
</head>
<body>
<div id="container">
<div id="title">
<h1>Record Store</h1>
</div>
<div id="navigation">
<ul class="navbar">
<li><a href="#">Home</a>
</li>
<li><a href="#">Vinyl Stock</a>
</li>
<li><a href="#">Online Offers</a>
</li>
<li><a href="#">Collectors News</a>
</li>
<li><a href="#">Contact</a>
</li>
</ul>
</div>
</div>
</body>
和CSS代码:
* {
border: 0;
padding: 0;
margin:0;
}
#container {
margin: auto;
width: 800px;
border: 1px solid black;
min-height: 600px;
z-index: -9;
}
#title {
margin:auto;
/*border: 1px solid black;*/
height: 30%;
}
#navigation {
border-top: 1px solid black;
border-bottom: 1px solid black;
height: auto;
overflow: auto;
}
.navbar {
}
.navbar ul {
}
.navbar li {
font: bold 12px/1.2em Arial, Verdana, Helvetica;
height: auto;
list-style: none;
text-align: center;
width: 20%;
float:left;
background-color: blue;
padding: 1% 0px;
}
.navbar a {
border-right: 1px solid #1F5065;
color: white;
display: block;
text-decoration: none;
}
.navbar a:hover {
color: black;
}
.navbar li:hover {
background-color: white;
}
有人可以看看并指出我出错的地方吗?
答案 0 :(得分:2)
您必须更加认真地定义您的选择器。当有人将鼠标悬停在li
上时,当你将鼠标悬停在a
上时,你会做一件事。你想要的是在将鼠标悬停在公共元素上时更改这两个元素。
要解决此问题,请删除:
.navbar a:hover {
color: black;
}
并将其替换为:
.navbar li:hover a {
color: black;
}
第一个选择器在a:hover
中显示“获取所有.navbar
个孩子”,第二个选择器在a
中显示“获取所有li:hover
个孩子”那是.navbar.
“