CSS 伪类 (Pseudo-classes)
锚伪类:在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。
a:link
{color: #FF0000} /* 未访问的链接 */a:visited
{color: #00FF00} /* 已访问的链接 */a:hover
{color: #FF00FF} /* 鼠标移动到链接上 */a:active
{color: #0000FF} /* 选定的链接 */
对于a标签的使用经常通过伪类来改变样式,比如hover悬停后的background背景,font-size字体大小,text-decoration文本样式(none去下划线),color字体颜色等,但是在:visited下却无法改变这么多样式。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.fi:hover{
text-decoration: none;
color: green;
font-size: 20px;
background-color: red;
border: 1px solid black;
}
.se:visited{
text-decoration: none;/*无效*/
color: green;
font-size: 20px;/*无效*/
background-color: red; /*这个按理来说应该有效*/
border: 1px solid black;/*无效*/
}
</style>
</head>
<body>
<a href="#qwe" class="fi">123465</a><br />
<a href="#aasd" class="se">7890</a>
</body>
</html>
原因在于:visited的privacy concerns隐私保护。原文链接
许多年前,CSS:visited曾是一种查询用户历史记录的途径,它自身并没有什么威胁,但是当其与js中的getComputedStyle()联合,便可以通过你的历史记录找到你去过哪里。其速度可达到210,000 URLs每分钟,那么就有可能获得你大量的历史信息或者通过指纹打印复制你的身份。由于浏览器可以保存很长一段时间的历史记录,这种方法可以暴露你相当一部分浏览信息。