解决方法
TL; DR编辑:截至2016年8月,CSS4工作草案允许其他标签使用:visited。现在在a:visited和:visited之间存在功能差异!谨防。
对于今天的Web开发语言,特别是HTML5和CSS3,你是对的:a:visited和visited之间在功能上没有区别。现在,请谨慎对待:Web标准,元素和用户界面协议是不断发展的,这意味着在将来,可能会引入一个与标记兼容的新标记。
时间:在CSS中引入了访问,W3C CSS1 spec说:
In CSS1,anchor pseudo-classes have no effect on elements other than ‘a’. Therefore,the element type can be omitted from the selector:
a:link { color: red }
==:link { color: red }
然而,在CSS2 spec,被访问的伪类的行为不限于只是一个标签:
The document language determines which elements are hyperlink source anchors. For example,in HTML4,the link pseudo-classes apply to
a
elements with an “href” attribute.
这意味着它是由文档语言和浏览器来确定哪些元素兼容:visited。虽然目前的行业标准规定,对于HTML,只有具有href属性的元素符合条件,但这可能会稍后改变。
编辑,2016年8月:看起来像CSS4 Working Draft已经确认我的怀疑;在新规范中::visited可以用于其他“链接类”元素,即< area>和< link> ;.规格说:
The :any-link pseudo-class represents an element that acts as the source anchor of a hyperlink. For example,in [HTML5],any
<a>
,<area>
,or<link>
elements with an href attribute are hyperlinks.
因此< a>,< area>和< link>都被视为超链接,规范说:visited适用于所有超链接。所以作为CSS4,你会更好地包括a在a:visited。