CSS 連結偽類選擇器順序原理
連結a是HTML中最重要的元素之一,通過它可以實現站內或者站際間頁面的跳轉。
為了更好的使用者體驗,連結具有四種狀態,根據不同的狀態設定不同的樣式。
四種狀態分別如下:
(1).link
(2).hover
(3).active
(4).visited
通過對應四種狀態的偽類選擇器,可以設定其狀態。
但偽類選擇器需要按照一定的順序設定,否則某些狀態效果不會生效。
選擇器正確排序是 :link > :visited > :hover > :actvie。
具體參閱CSS 設定連結樣式一章節。
只要記住上述順序,即便不知其中的原理,也可以很完美的工作。
還有不少小夥伴想了解其中的原理,下面詳細做一下介紹。
本質就是CSS選擇器優先順序問題,具體參閱CSS 選擇器優先順序規則一章節。
結合一段程式碼例項做一下介紹:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> a:link { text-decoration:none; color:red; } a:visited { text-decoration:none; color:blue; } a:hover { text-decoration:underline; color:green; } a:active { text-decoration:underline; color:deeppink; } </style> </head> <body> <a href="#">本站url地址是www.softwhy.com</a> </body> </html>
程式碼分析如下:
(1).四個偽類選擇器權重完全相同,所以需要通過它們的先後順序決定顯示哪種樣式。
(2).:link要位於:visited的前面,如果順序顛倒,訪問後的樣式永遠得到不到顯示。
(3).:hover要位於:active前面,:link後面,因為當滑鼠點選連結使其處於啟用狀態時,連結最少處於三種狀態:link、:hover和:active,如果:hover位於:active後面,那麼:active效果永遠得不到展現,如果位於:link的前面,那麼:hover的效果永遠得不到展現。同樣的道理,:hover也必須要位於:visited後面。
(4).於是最終得出:link > :visited > :hover > :actvie這個順序。
最後總結如下:
實質就是確定一個恰當的優先順序關係,上面第三條分析看起來亂糟糟的。
其實可以從中總結出一個規律,link狀態不包含其他三種狀態,visited僅包含link狀態,hover可以包含link與visited兩種狀態,而active可以包含其他的三種狀態,規律看出來了嗎,共性越多的位置越靠後,這樣它的特性不會被覆蓋,別人的特性也不會被覆蓋。
相關文章
- css中連結偽類的順序CSS
- CSS 偽類選擇器CSS
- CSS3新增選擇器(屬性選擇器、結構偽類選擇器、偽元素選擇器)CSSS3
- CSS的總結(選擇器,偽類等…)CSS
- css 選擇器優先順序CSS
- 徹底理解CSS結構偽類選擇器CSS
- CSS E:default 偽類選擇器CSS
- CSS E:disabled偽類選擇器CSS
- CSS E:disabled 偽類選擇器CSS
- CSS E:checked 偽類選擇器CSS
- CSS E:hover偽類選擇器CSS
- CSS E:hover 偽類選擇器CSS
- css選擇器的優先順序CSS
- css選擇器順序的小技巧CSS
- CSS偽類與偽元素選擇器區別CSS
- CSS :focus-within 偽類選擇器CSS
- CSS偽類選擇器是什麼CSS
- CSS @page:left列印偽類選擇器CSS
- CSS @page:first列印偽類選擇器CSS
- css偽類選擇符CSS
- CSS 選擇器優先順序規則CSS
- CSS之選擇器及其優先順序CSS
- CSS樣式中的通用選擇器和偽類選擇器CSS
- CSS @page:right列印偽類選擇器CSS
- HTML表單及CSS選擇器、偽類和偽元素HTMLCSS
- 深入理解CSS選擇器優先順序CSS
- CSS3選擇器及優先順序CSSS3
- ***CSS魔法堂:選擇器及其優先順序CSS
- 有趣的CSS題目(10):結構性偽類選擇器CSS
- CSS基礎知識-選擇器的種類及優先順序CSS
- css :target偽類選擇器簡單介紹CSS
- 順序與選擇結構
- CSS入門十二:選擇器的優先順序CSS
- 真正理解"CSS選擇器的優先順序"CSS
- css選擇器的解析順序簡單介紹CSS
- css知多少(6)——選擇器的優先順序CSS
- CSS E:lang()偽類選擇符CSS
- CSS選擇器(6)——偽元素CSS