链接和格式,HTTP有所作为?

时间:2012-08-21 00:38:52

标签: css html hyperlink anchor href

所以我希望所有链接都显示在页面上:

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”选择器获取并且链接变为蓝色。

什么?

1 个答案:

答案 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;
}

注意选择器的特异性。