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這些顏色。
翻譯的有錯誤的地方,歡迎來打我臉。