中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在CSS中使用visited偽類選擇器

發布時間:2021-06-07 16:00:23 來源:億速云 閱讀:187 作者:Leah 欄目:web開發

如何在CSS中使用visited偽類選擇器?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

首字母連起來是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> 元素文字顏色就會直紅色,如下截圖示意:

如何在CSS中使用visited偽類選擇器

于是,我們就可以下面這種方法實現訪問過的鏈接文字后面跟一個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偽類選擇器

除了支持的CSS有限,:visited偽類選擇器還有不少其他奇怪的特性。

三、沒有半透明

使用 :visited 偽類選擇器控制顏色的時候,雖然語法上支持半透明色,但是表現上,要么純色,要么全透明。

例如:

a { color: blue; }
a:visited { color: rgba(255,0,0,.5); }

結果不是半透明紅色,而是純紅色,完全不透明。

如何在CSS中使用visited偽類選擇器

四、只能重置,不能憑空設置

請問下面這段CSS,訪問過的 <a> 元素會有背景色嗎?

a { color: blue; }
a:visited { color: red; background-color: gray; }

HTML為:

<a href="">有背景色嗎?</a>

答案是不會有背景色,如下截圖:

如何在CSS中使用visited偽類選擇器

因為 :visited 偽類選擇器中的色值只能重置,不能憑空設置。

我們修改成下面這樣就可以了:

a { color: blue; background-color: white; }
a:visited { color: red; background-color: gray; }

此時,文字效果如下截圖:

如何在CSS中使用visited偽類選擇器

也就是默認需要有一個背景色,這樣 :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色值。

看完上述內容,你們掌握如何在CSS中使用visited偽類選擇器的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平南县| 大埔县| 噶尔县| 资中县| 龙里县| 沂源县| 灵寿县| 塔河县| 嘉义县| 桐城市| 东源县| 涟源市| 宁南县| 石阡县| 阳原县| 城固县| 潜山县| 峡江县| 射阳县| 平安县| 新营市| 东乡族自治县| 永安市| 阜南县| 昌乐县| 房山区| 明星| 牟定县| 平凉市| 重庆市| 宝丰县| 甘南县| 贞丰县| 阜新市| 岑巩县| 宁晋县| 黄平县| 五寨县| 祁阳县| 澄城县| 屏南县|