所以我希望所有链接都显示在页面上:
a:link, a:visited {
text-decoration: none;
color: blue;
font-weight: bold;
}
a:hover, a:active {
text-decoration: underline;
color: blue;
}
DIV中的垂直导航菜单除外,其中包含白色和绿色背景的链接(悬停时为蓝色)。注意:此navMenu仅链接到我网站上的其他页面(“home.html”,“contact.html”等)并使用相对路径(即 - 仅文件名)。
#navMenu {
width: 105px;
float: left;
background-color: green;
margin: 0px;
padding: 0px;
}
#navMenu > ul {
list-style-type: none;
margin: 0px;
padding: 0px;
overflow: hidden;
}
#navMenu > ul li {
display: inline;
float: left;
font-size: small;
}
#navMenu > ul li a:link, a:visited {
display: block;
width: 130px;
font-weight: bold;
color: white;
background-color: #999900;
text-align: left;
padding: 4px;
text-decoration: none;
text-transform: uppercase;
}
#navMenu > ul li a:hover, a:active {
background-color: blue;
}
因此,当我查看navMenu DIV之外的页面中的链接时,大多数是外部的(到另一个站点),看起来像这样:
<a href="http://somewhere.com">Link</a>
并且正在使用蓝色和默认的“a”选择器定义的颜色。
但是(得到这个) - 任何链接(即使它在navMenu DIV之外)是指具有相对路径的网站上的另一个页面:
<a href="page2.html">Page 2</a>
正在使用navManu格式处理(因此文本为白色)。
但是得到这个 - 如果我在navMenu DIV之外采取任何这些链接(到内部页面)并且只是将“http://”添加到HREF,它将从“a”选择器获取并且链接变为蓝色。
什么?
答案 0 :(得分:1)
那是因为您已经访问了该链接。您的CSS表示已访问的任何链接应显示为白色。说它应该是蓝色的第一个声明被覆盖,我认为这是你的问题。尝试将最后两个声明更改为以下内容:
#navMenu > ul li a:link, #navMenu > ul li a:visited {
display: block;
width: 130px;
font-weight: bold;
color: white;
background-color: #999900;
text-align: left;
padding: 4px;
text-decoration: none;
text-transform: uppercase;
}
#navMenu > ul li a:hover, #navMenu > ul li a:active {
background-color: blue;
}
注意选择器的特异性。