当我在锚标记中给出绝对链接时,为什么访问链接颜色不会改变?

时间:2015-01-28 13:17:24

标签: html css

我使用锚标记在html中建立了链接。我已经为css中的链接定义了一个未访问的颜色和一个访问过的颜色,如下所示:

#menu{
  color:#000000;
  position:absolute;
  bottom: 20px;
  right: 30px;
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 10px;
  font-weight: bold;    
}

#menu a:link{color:blue;}
#menu a:visited{color:red;}

HTML code:

<div align = " right" id="menu">
<a  href="D:\MyFolder\ContactUs.html">Contact Us</a>
</div>

当我在&#34; href&#34;中给出相对地址时锚标签的属性,一切正常。

e.g。 href =&#34; ContactUs.html&#34; - 因为他们在同一个文件夹中

但是当我在&#34; href&#34;中给出绝对地址时锚标签的属性,颜色不会从&#34;蓝色&#34; to&#34; red&#34;访问该页面。它仍然是&#34;蓝色&#34;仅

e.g。 href =&#34; D:\ MyFolder \ ContactUs.html&#34;

请解释为什么会这样?

2 个答案:

答案 0 :(得分:3)

请注意,css类适用于visited而不是clicked

因此,当您单击<a href="D:\MyFolder\ContactUs.html">Contact Us</a>并且浏览器自动检测到它是文件时,它会重定向到file:///d:/MyFolder/ContactUs.html并将其标记为已访问,而不是您指定的路径。

如上所述,要么改变你的链接,让file:///在前面,要么使用相对链接(这更有意义)

答案 1 :(得分:2)

我已经测试了两种变体的链接:
1 href="D:\path\file.html"
2 href="file:///d:/path/file.html"

Chrome在两种情况下都将链接设置为:visited。 Firefox和MSIE仅突出显示访问过的file:///链接。

如果页面是从http服务器托管的,则在任何情况下都不会在MSIE中将链接标记为已访问。 Firefox和Chrome将访问的file:链接设置为样式,但只有Firefox允许您关注链接,但只有未设置样式的(!)一个(D:\,而不是file:)。

所以你应该使用<a href="file:///d:/MyFolder/ContactUs.html">Contact Us</a>使它在所有浏览器中都有效,只要两个页面都作为本地文件打开。 (但实际上你应该使用相对链接)。