亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS :visited偽類選擇器隱秘往事回憶錄

2024-07-11 08:59:31
字體:
來源:轉載
供稿:網友

昨天想使用 a:visited 改變右側“猜你喜歡”已訪問過的文字顏色,發現改來改去效果都一般,想到還有其他幾個CSS可以設置,與顏色相關的,結果,太久沒使用這個偽類選擇器,具體那幾個支持的CSS一下子記不得了,發現有必要自己整理記錄下。

一、由愛生恨

鏈接4偽類(后兩個偽類后來拖拽到幾乎所有HTML標簽元素)如果同時使用,其順序是這樣的: :link → :visited → :hover → :active 。

首字母連起來是LVHA,順序完全符合love-hate,也就是愛恨,所謂由愛生恨,這樣順序就記住了。

目前這個年代, :link 這個偽類用得已經不多了,但作用還是有的,我們平時用得比較多的都是直接設置 <a> 元素的顏色,例如:

a { color: blue; }

實際上,下面這種要更合適,更規范:

a:link { color: blue; }

兩者有什么區別呢?

區別在下面,下面兩個 <a> 元素,前者可以匹配 a:link 選擇器,但后者卻只能匹配 a 選擇器:

<a href="##">文字</a><a>文字2</a>

例如我很喜歡移除 href 屬性表示 <a> 元素按鈕的禁用態,使用 a:link 禁用和非禁用的CSS就更好控制了。

只是我們使用 a:link 選擇器的時候, a:visited 選擇器也一定要設置(因為 a:link 在最前面),不然訪問過的鏈接顏色就會跟著系統或者當前元素設置的 color 走,表現反而有些亂,因此,當下已經很少見到使用 :link 偽類選擇器的了。

而 :visited 偽類選擇器依然很有用,尤其在列表式鏈接站點,例如文章列表,章節列表,可以讓用戶知道這篇文章我已經看過了,算是比較友好的一種體驗處理。

二、:visited偽類選擇器支持CSS很有限

或許是出于安全考慮, :visited 偽類選擇器支持CSS很有限,目前僅支持下面這些CSS: color , background-color , border-color , border-bottom-color , border-left-color , border-right-color , border-top-color , column-rule-color 以及 outline-color 。

同時,類似 ::before , ::after 這些偽元素都不支持,例如,我們希望使用文字標示已經訪問過的鏈接,如下:

a:visited::after{content:'visited';}  // 注意,不支持

不好意思,想法雖好,但沒有任何瀏覽器支持,請死了這條心。

不過好在 :visited 偽類支持子選擇器,不過,所能控制的CSS屬性和 :visited 一模一樣,就那幾個和顏色相關的CSS屬性,也不支持 ::before , ::after 這些偽元素。

例如:

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()是獲取不到這個顏色值的。

已知CSS如下:

a { color: blue; }a:visited { color: red; }

并且我們的鏈接表現為紅色,此時我們運行下面的JavaScript代碼:

window.getComputedStyle(document.links[0]).color;

結果輸出的是: "rgb(0, 0, 255)" ,也就是藍色blue對應的RGB色值。

如下截圖示意:

六、回憶完畢

總之, :visited 偽類選擇器是一個有很多“怪癖”的選擇器,如果按照 :hover 或者 :active 這類選擇器的表現理解之,一定會不知所然,因為太多特性不支持,太多表現不合常規理解。

究其原因,我猜100%是出于安全考慮,如果瀏覽器可以通過JS或者其他行為表現知道你已經訪問過哪些鏈接,我靠,那隱私直接就暴露了呀,肯定是不行的,所以,如果你想借助 :visited 偽類選擇器搞些花頭,我勸大家還是死了這條心,老老實實搬磚吧。

另外, :visited 的怪異特性應該還有其他一些,歡迎大家進行補充。

總結

以上所述是小編給大家介紹的CSS :visited偽類選擇器隱秘往事回憶錄,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频免费观看| 久久躁日日躁aaaaxxxx| 中文字幕国产亚洲2019| 亚洲男女自偷自拍图片另类| 欧美刺激性大交免费视频| 少妇高潮久久久久久潘金莲| 91久久精品国产91性色| 日韩av成人在线| 亚洲成人黄色在线| 欧美一级淫片aaaaaaa视频| 久久久欧美精品| 亚洲一区av在线播放| 51色欧美片视频在线观看| 中文字幕欧美在线| 91精品91久久久久久| 中文字幕亚洲无线码a| 精品成人在线视频| 日韩av色综合| 亚洲xxx自由成熟| 日本久久久久亚洲中字幕| 欧美一区二区三区精品电影| 91tv亚洲精品香蕉国产一区7ujn| 国产精品视频一区国模私拍| 88国产精品欧美一区二区三区| 久久精品国产久精国产思思| 亚洲社区在线观看| 久久欧美在线电影| 国产欧美精品va在线观看| 国产精品日韩欧美大师| 国产精品网站大全| 97精品国产97久久久久久| 9.1国产丝袜在线观看| 91成人在线观看国产| 久久久久日韩精品久久久男男| 欧美日韩第一视频| 日韩中文在线中文网三级| 国语自产精品视频在线看抢先版图片| 91亚洲精品久久久久久久久久久久| 亚洲欧美日韩精品久久| 美女黄色丝袜一区| 国产日韩在线一区| 国产+人+亚洲| 国产精品视频男人的天堂| 久久韩国免费视频| 欧美性jizz18性欧美| 欧美激情一级二级| 国产精品久久久久久五月尺| 久久精品视频在线| 日韩精品视频在线免费观看| 91精品国产综合久久男男| 91精品国产高清自在线看超| 国产在线精品播放| 国产精品免费小视频| 久久成人18免费网站| 日韩有码在线播放| 中文字幕日韩在线观看| 久久天堂av综合合色| 伊人成人开心激情综合网| 中文字幕亚洲一区在线观看| 欧美激情视频给我| 日本中文字幕成人| 欧美国产日韩免费| 大胆欧美人体视频| 国产福利精品在线| 欧美极度另类性三渗透| 国产精品美女www爽爽爽视频| 日韩电影中文字幕在线观看| 一区二区三区无码高清视频| 国产精品丝袜白浆摸在线| 日本成熟性欧美| 成人免费视频在线观看超级碰| 国外成人在线视频| 成人免费观看网址| 成人在线国产精品| 欧美精品videofree1080p| 91啪国产在线| 中文字幕日韩在线播放| 色综合久综合久久综合久鬼88| 91性高湖久久久久久久久_久久99| 亚洲综合中文字幕在线| 欧美性猛xxx| 日av在线播放中文不卡| 日韩综合视频在线观看| 精品少妇v888av| 日韩av一区在线| 自拍偷拍亚洲精品| 国产精品久久久久久中文字| 亚洲香蕉伊综合在人在线视看| 亚洲www永久成人夜色| 欧美黑人xxxx| 久久夜色精品亚洲噜噜国产mv| 亚洲一区二区三区sesese| 欧美激情一级欧美精品| 久久久久国产视频| 国产精品中文在线| 欧美成人在线免费| 欧美日韩精品在线观看| 欧美日韩国产成人在线观看| 91精品国产91久久久久久吃药| 亚洲a级在线观看| 日韩精品视频免费在线观看| 欧美成人精品激情在线观看| 久久99久久99精品中文字幕| 午夜精品久久久久久久久久久久久| 久久精品国产一区| 日韩国产欧美区| 91精品国产91久久久久福利| 国产精品久久久久久久久免费| 欧美中文字幕在线视频| 欧美黄色免费网站| 欧美午夜片欧美片在线观看| 高清欧美性猛交xxxx| 亚洲已满18点击进入在线看片| 2018中文字幕一区二区三区| 亚洲一级黄色av| 456国产精品| 在线视频精品一| 国产美女精品免费电影| 2019国产精品自在线拍国产不卡| 日韩视频免费大全中文字幕| 日韩在线免费观看视频| 国产va免费精品高清在线| 欧美激情在线有限公司| 国产欧美一区二区白浆黑人| 久久成人精品电影| 狠狠色狠狠色综合日日小说| 欧美限制级电影在线观看| 欧美成人一区在线| 欧美午夜美女看片| 亚洲国产小视频在线观看| 日本精品视频在线| 91免费人成网站在线观看18| 成人免费淫片视频软件| 2019亚洲男人天堂| 国产欧美 在线欧美| 欧美激情网站在线观看| 69av成年福利视频| 粗暴蹂躏中文一区二区三区| 亚洲人成电影网站色…| 日韩中文有码在线视频| 国产日韩欧美在线视频观看| 日韩欧美在线字幕| 亚洲一区二区三| 亚洲欧洲免费视频| 亚洲欧美国产精品久久久久久久| 第一福利永久视频精品| 26uuu日韩精品一区二区| 久久精品91久久香蕉加勒比| 中文字幕在线看视频国产欧美| 中文字幕在线观看亚洲| 91在线观看欧美日韩| 97香蕉久久夜色精品国产| 亚洲欧美日韩精品久久亚洲区| 成人av.网址在线网站| 国产午夜一区二区| 日韩av电影手机在线| 国产97免费视| 欧美日本黄视频| 亚洲欧美一区二区三区在线| 色综合视频一区中文字幕| 欧美一区三区三区高中清蜜桃| 国产亚洲人成网站在线观看| 欧美激情久久久| 亚洲欧美国产精品|