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>
許多年前,CSS:visited曾是一種查詢用戶歷史記錄的途徑,它本身並沒有什麼威脅,但是當其與js中的getComputedStyle()聯合,便可以通過你的歷史記錄找到你去過哪裡。其速度可達到210,000 URLs每分鐘,那麼就有可能獲得你大量的歷史資訊或透過指紋列印複製你的身分。由於瀏覽器可以保存很長一段時間的歷史記錄,這種方法可以暴露你相當一部分瀏覽資訊。
哇靠,那群牛逼的人當讓不想讓別人看到自己天天在哪些網上下資源啦,所以他們開始著手保護用戶ziji的隱私。好吧,他們是這麼做的。
將getComputedStyle方法變性,總是回傳values就好像使用者從來沒造訪過這個網站。 (不過我沒試過這到底是個什麼東西。)
將:visited閹割,只能用於修改color,background-color,border-*-color,outline-color,以及部分的fill和stroke屬性,其他屬性則被:link取代。並且不能用rgba(),hsla(),transparent這些顏色。
翻譯的有錯誤的地方,歡迎來打我臉。
更多CSS中:visited的隱私保護 相關文章請關注PHP中文網!