“:link”伪类有什么作用?

5

我知道:link可以选择未访问的元素,我也知道LoVe-HAte trick来记住各种链接伪类的顺序。但实际上我总是这样样式化我的链接:

a {
    /* common styles for all links, regardless of state */
    /* this includes unvisited links, and thus a:link */
}
a:visited {
    /* specific styles for visited links */
}
a:hover {}
a:active {}

由于链接只有已访问和未访问两种情况,这已经涵盖了所有可能的情况,我真的不明白伪类 :link 在表格中添加了什么。

我错过了什么吗?

3个回答

7
a:link选择器可以让您设置链接到其他页面的<a>标签的样式。
没有href属性的裸<a>标签通常用作文档中的标记;将位置设置为document.html#foo将跳转到文档中<a id="foo">所在的位置。毕竟,它被称为“锚点”标签是有原因的。
传统的HTML可能看起来像这样:
<h2>Navigation</h2>
<a href="#ch1">Chapter 1</a>

...

<h3><a id="ch1">Chapter 1</a></h3>
<p>It was the best of times...</p>

随后的HTML标准允许您使用document.html#thing语法跳转到具有属性id="thing"的任何元素,但这并非总是如此。

哦,是的,这是有道理的,尽管(正如你所指出的)它现在已经不太有用了。有点像一个遗留下来的伪类。:) 谢谢。 - s427
1
在传统的HTML中,命名锚点使用name属性。对于所有元素来说,id属性是更现代化的做法。 - BoltClock

4

在某些情况下,您可能希望未访问的链接引起访问者的注意,特别是如果它很重要。它经常使用吗?我不知道,我实际上没有发现需要使用它。就我记得,我和你做的一样。

但我想最终能够单独为这些链接设置样式而不是不能设置也是不错的。

我想到的一个用例是词云(例如博客中的标签),其中您希望未访问的链接比其他链接具有更大的字体。


是的,也许 :link 伪类只是为了与 :visited 对称而引入的...我同意有这个选项很好,但你仍然可以使用我的方法来实现相同的效果:默认情况下将所有链接样式设置为引人注目,然后覆盖 :visited 链接。总的来说,:link 伪类对我来说似乎毫无用处,这让我感到有点惊讶。 - s427

4

:link 伪类用于选择和样式化页面中的未访问链接。它适用于尚未访问过的链接。

一个元素既可以是 :visited 也可以是 :active,所以 :link 伪类会产生效果。

:active:hover 或者 :visited 伪类会覆盖 :link 伪类定义的样式。为了正确地样式化链接,:link 规则应该放在其他所有与链接相关的规则(:link:visited:hover:active)之前。


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