例如:
a:visited span{color: red;}
<a href="">文字<span>visited</span></a>如果链接是浏览器访问过的,则 <span> 元素文字颜色就会直红色,如下截图示意:
![]()
于是,我们就可以下面这种方法实现访问过的链接文字后面跟一个visited字样。HTML如下:
<a href="">文字<small></small></a>CSS如下:
small { position: absolute; color: white; } // 这里设置color: transparent无效
small::after { content: 'visited'; }
a:visited small { color: purple; }
除了支持的CSS有限,:visited伪类选择器还有不少其他奇怪的特性。
三、没有半透明
使用 :visited 伪类选择器控制颜色的时候,虽然语法上支持半透明色,但是表现上,要么纯色,要么全透明。
例如:
a { color: blue; }
a:visited { color: rgba(255,0,0,.5); }结果不是半透明红色,而是纯红色,完全不透明。

四、只能重置,不能凭空设置
请问下面这段CSS,访问过的 <a> 元素会有背景色吗?
a { color: blue; }
a:visited { color: red; background-color: gray; }HTML为:
<a href="">有背景色吗?</a>答案是不会有背景色,如下截图:

因为 :visited 伪类选择器中的色值只能重置,不能凭空设置。
我们修改成下面这样就可以了:
a { color: blue; background-color: white; }
a:visited { color: red; background-color: gray; }此时,文字效果如下截图:

也就是默认需要有一个背景色,这样 :visited 的时候才有有背景色呈现
五、:visited设置并呈现的色值无法获取
也就是说,当文字颜色值表现为 :visited 选择器设置的颜色值的时候,我们使用JS的getComputedStyle()是获取不到这个颜色值的。










