CSS中:visited的隐私保护

CSS 伪类 (Pseudo-classes)

锚伪类在支持 CSS 的浏览器中,连接的不一样状态均可以不一样的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。css

 {color: #FF0000}		/* 未访问的连接 */
 {color: #00FF00}	/* 已访问的连接 */
 {color: #FF00FF}	/* 鼠标移动到连接上 */
 {color: #0000FF}	/* 选定的连接 */a:linka:visiteda:hovera:active

对于a标签的使用常常经过伪类来改变样式,好比hover悬停后的background背景,font-size字体大小,text-decoration文本样式(none去下划线),color字体颜色等,可是在:visited下却没法改变这么多样式。html

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7 .fi:hover{
 8     text-decoration: none;
 9     color: green;
10     font-size: 20px;
11     background-color: red; 
12     border: 1px solid black;
13 }
14 .se:visited{
15     text-decoration: none;/*无效*/
16     color: green;
17     font-size: 20px;/*无效*/
18     background-color: red; /*这个按理来讲应该有效*/   
19     border: 1px solid black;/*无效*/
20 }
21         </style>
22     </head>
23     <body>
31         <a href="#qwe" class="fi">123465</a><br />
32         <a href="#aasd" class="se">7890</a>
33     </body>
34 </html> 

缘由在于:visited的privacy concerns隐私保护。原文连接浏览器

许多年前,CSS:visited曾是一种查询用户历史记录的途径,它自身并无什么威胁,可是当其与js中的getComputedStyle()联合,即可以经过你的历史记录找到你去过哪里。其速度可达到210,000 URLs每分钟,那么就有可能得到你大量的历史信息或者经过指纹打印复制你的身份。因为浏览器能够保存很长一段时间的历史记录,这种方法能够暴露你至关一部分浏览信息。😒(不应看的别看)。字体

哇靠,那群牛逼的人当让不想让别人看到本身每天在哪些网上下资源啦,因此他们开始着手保护用户ziji的隐私。好吧,他们是这么作的。网站

  • 将getComputedStyle方法变性,老是返回values就好像用户从没访问过这个网站。(不过我没试过这究竟是个什么东西。)
  • 将:visited阉割,只能用于修改color,background-color,border-*-color,outline-color,以及部分的fill和stroke属性,其余属性则被:link代替。而且不能用rgba(),hsla(),transparent这些颜色。

翻译的有错误的地方,欢迎来打我脸。😶spa

相关文章
相关标签/搜索