当链接被点击时不要改变链接颜色

49

我在一个HTML页面上有一个链接:

<a href="#foo">foo</a>

链接文本的颜色最初是蓝色的。当链接被点击时,链接文本的颜色首先变为红色,然后再变回蓝色。我希望在用户单击链接时链接文本的颜色不会改变。我该如何实现?

我尝试过

a:active {
    color: none;
}

我尝试在CSS中实现,但没有成功。

而且我不想在CSS中使用这个:

a:active {
    color: blue;
}

链接文本的原始颜色可能与蓝色不同,因此需要进行样式设置。

谢谢。

编辑:该页面在iPhone浏览器上显示,我想让a:active保持原始链接文本颜色。

5个回答

69

你正在寻找这个:

a:visited{
  color:blue;
}

链接有几种状态可以更改... 我记得的方式是LVHFA(Lord Vader's Handle Formerly Anakin)

每个字母代表一个伪类:(Link,Visited,Hover,Focus,Active)

a:link{
  color:blue;
}
a:visited{
  color:purple;
}
a:hover{
  color:orange;
}
a:focus{
  color:green;
}
a:active{
  color:red;
}
如果你想让所有链接都是蓝色的,只需将它们全部改为蓝色。但从可用性角度来看,如果鼠标点击后颜色稍微变化一下(即使只是深浅不同的蓝色),有助于指示链接已被单击(这在触摸屏界面特别重要,因为您不总是确定点击是否已被注册)。
如果你有不同类型的链接,希望在被单击时都显示为相同的颜色,请向链接添加类。
a.foo, a.foo:link, a.foo:visited, a.foo:hover, a.foo:focus, a.foo:active{
  color:green;
}
a.bar, a.bar:link, a.bar:visited, a.bar:hover, a.bar:focus, a.bar:active{
  color:orange;
}

应该注意的是,并不是所有浏览器都支持这些选项 ;-)


1
OP 想知道如何使用 :active,就像描述的那样。我认为你应该重新阅读问题。 - jwueller
6
我喜欢你记住各州的方式,哈哈哈! - Jordan Thornquest

53

我认为这完全适合任何颜色:

a {
    color: inherit;
}

不错。简单、最小化,很可能正是原帖作者想要的。 - Jochem Schulenklopper

9

只需给出

a{
color:blue
}

即使它被访问过,它仍然会是蓝色的。

很有趣 - 因为我个人总是想要一些颜色变化,所以我设置了所有的伪状态,但你是对的,这是最简单的管理方式。如果你想要不同颜色的链接集合,那么只需添加一个类即可:a.foo{color:orange;} a.bar{color:green;} - scunliffe
对我来说,这是最好的方法,否则,如果按照scunliffe的答案所述进行操作,您想要样式化颜色的任何其他a标签都必须为每个:link、:visited等进行覆盖,相当麻烦。 - Kenny Cason

0

您需要使用明确的颜色值(例如 #000blue)来设置 color 属性。在此处,none 是无效的。初始值是与浏览器特定相关的,不能使用 CSS 恢复。请记住,除了 :active 之外还有其他一些伪类。


我正在使用IE 9,尝试了这篇帖子中发布的所有方法,但仍然没有成功。颜色链接仍然在改变。 - naijacoder

-1
不要过于复杂化。只需使用标签为链接设置颜色即可。它将保持一个恒定的颜色,即使您点击它也不会改变。所以在您的情况下,只需将其设置为蓝色即可。如果它被设置为特定的蓝色,您可以按下键盘上的“打印屏幕”键,在画图中粘贴,并使用颜色选择器(形状像滴管)选择链接的颜色并查看颜色设置中的代码。

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