点击超链接后如何改变其颜色

10

我想在点击后改变超链接的颜色,但其他超链接的颜色也会改变。

CSS

a:active {
    color: gray;
}
a:visited {
    color:black;
}

HTML

<body> 
    <a href="link1.html">a</a>
    <a href="link2.html">b</a>
    <a href="link3.html">c</a> 
</body>

你的网站是静态的吗?你想要突出显示当前页面还是什么? - Kristian Vitozev
预期的行为是什么?因为你描述的那个是完全正常的。 - Laurent S.
我只想在点击超链接后更改其颜色。 - Kvk Ganesh
1
它运行良好,我已在IE6上尝试过。 - Bhushan Kawadkar
@Bhushan Kawadkar 我正在使用火狐浏览器,但它无法工作。 - Kvk Ganesh
@Bhushan Kawadkar,每次清除历史记录都不太合适。所以我想知道是否有可能在不改变超链接颜色的情况下每次获得一个新页面。 - Kvk Ganesh
2个回答

10
:visited 伪类作用于浏览器的历史记录。所有三个链接都使用黑色颜色表示您的浏览器以前访问过它们。如果您清除浏览历史记录或更改链接的 URL,您会发现它们不再被视为“visited”。
在您的浏览器中,Stack Overflow 的链接 可能会显示为已访问,但Voice of JIHAD 的链接 可能会显示为不同的颜色(除非您是塔利班成员)。点击未访问的链接将更改其颜色为已访问颜色 - 正如 Stack Overflow 样式表中定义的那样 - 并且只要页面存在于您的浏览器历史记录中,它将保持为“visited”。

我尝试了你说的,但当我点击链接时,其他链接的颜色也改变了...这就是问题所在。 - Kvk Ganesh
是的,我在使用不同的 href 来区分不同的链接。 - Kvk Ganesh
你的浏览器历史记录中是否都没有这三个链接?如果你将这些链接更改为link1-changed.html、link2-changed.html和link3-changed.html,结果会是什么? - Greg
每次清除历史记录都不太合适。那么我想知道是否有可能在不改变超链接颜色的情况下每次获取一个新页面。 - Kvk Ganesh
但是,每次页面加载时如何清除浏览器历史记录? - Kvk Ganesh
显示剩余8条评论

2

好的,现在你知道了:visited是从浏览器历史记录中工作的,我想你只想改变已点击链接的颜色。 我整合了一些jQuery代码。

$('a').click(function(){
      $(this).addClass("visited");
});

并且包括CSS
a{
color:#000;
text-decoration:none;
}

a.visited{
color:#205081;
}

更新:

  ....
  ....
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>// import jQuery
  <script>
  enter the script here..
  </script>
  </body>

这里是演示代码


所以我需要在哪里包含jQuery... - Kvk Ganesh
在关闭 body 标签之前,请查看更新。 - lazyprogrammer
@KvkGanesh 这里也有同样的问题,但是涉及到子菜单。当点击子菜单时,它仍然保持白色,但我需要其主菜单选项也保持白色。 - Dipali Patil
@Kvk Ganesh,我这里也有同样的问题。但是涉及到子菜单。当点击子菜单时,它仍然保持白色,但我需要它的主菜单选项也保持白色。 - Dipali Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接