CSS 伪 class :link 不支持。有没有等价物?

CSS pseudo class :link not supported. Is there any equivalent?

我是 CSS 的新手,我想知道是否有另一种方法可以编写等效于伪 class :link 的方法,以防 :link 不支持?

a {} 选择器(添加 {} 因为它太短了)将应用于所有伪 类 尽管 a:link 将覆盖用户没有的 URL 的特定样式还没去过

有人提到了非常旧的 Internet Explorer 版本。如果您是 CSS 的新手,您应该 首先 关注当前的浏览器。如果您此时正在学习,如果使用 CSS 将成为您未来职业的一部分,那么您将支持的最旧版本的 IE 是 IE11。

理论上,在 selectors-4 中你可以写 :any-link:not(:visited),但是你将很难找到任何支持 :visited 但不支持 :link 的浏览器,更不用说了:any-link,尽管浏览器性能下降。

稍微更广泛支持的选择器需要文档语言的知识,因为 link 伪 classes 本身根据文档语义匹配不同的元素。在HTML中,:link可以表示为如下三级选择器列表:

a[href]:not(:visited), area[href]:not(:visited), link[href]:not(:visited)

同样的警告也适用。

如果您询问的浏览器不支持 link 伪 classes,请从在选择器列表上方。如果您询问如何在不支持伪 class 的浏览器中根据它们的访问次数来匹配 link,那么它就变得不可能了。但是没有已知的浏览器不支持 link 伪 classes,所以如果您正在制作网站,这将永远不会成为问题。


注意 CSS1 and CSS2.1 define :link and :visited to apply only to a elements — the standalone Selectors standard (level 3 and up) instead defers to the document language, and in the case of HTML, the current definition above is provided by HTML5。这在理论上意味着 IE6 及以下浏览器(不确定 IE7)不支持 link 伪 classes 在 a[href] 以外的元素上,这是因为IE6 被设计为 CSS1 兼容,而不是 CSS2 兼容。

这在实践中意味着什么取决于您是否使用 link 伪 classes 来匹配 arealink 元素,以及是否首先,您支持可追溯到 IE7 的浏览器。如果您像 99.9% 的作者一样不将它们与 arealink 元素一起使用,那么这在实践中对您来说绝对没有任何意义。