<!DOCTYPE html>
<html>
<head>
<style>
.filter ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
.filter li {
float: left;
}
.filter a:link, .filter a:visited {
display: block;
width: 120px;
font-weight: bold;
color: #FFFFFF;
background-color: #98bf21;
text-align: center;
padding: 4px;
text-decoration: none;
text-transform: uppercase;
}
.filter a:hover, .filter a:active {
background-color: #7A991A;
}
.active{
background: red;
}
</style>
</head>
<body>
<div class="filter">
<ul>
<li><a href="#home" class="active">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</div>
</body>
</html>
如何使用&#34;有效&#34;为<a>
标记添加红色背景。类?当前代码适用于边框(种类)但不适用于背景。
答案 0 :(得分:0)
我喜欢这个问题,因为它揭示了一个关于CSS的有趣的事情。
.filter a:hover, .filter a:active {
background-color: #7A991A;
}
.filter a.active {
background: red;
}
css选择器实际上按重要性“优先”,这就是问题所在; css并不关心你在初始样式之后尝试覆盖...它看到.filter a:hover
等更重要,因此声明被忽略了。
这是因为每个选择器都有一个“等级”,它根据点数系统确定其重要性。确切地说,按重要性排序:
因此,.filter a:hover
值10 + 1 + 10 = 21
而.active
仅为10。
.classes
仍然不如单#id