CSS中超鏈接偽類link,visited,hover,active的順序分析

出處:[[子匠_Zijor](http://www.dengzhr.com/)](http://www.dengzhr.com/frontend/css/344)

超鏈接標(biāo)簽的CSS偽類包括link,visited,hover,active。

1. a偽類解釋:

link:設(shè)置a對(duì)象在未被訪問前的CSS樣式;

visited:設(shè)置a對(duì)象在其鏈接地址已被訪問過時(shí)的CSS樣式;

hover:設(shè)置對(duì)象在其鼠標(biāo)懸停時(shí)的CSS樣式;

active:設(shè)置對(duì)象在被用戶激活(在鼠標(biāo)點(diǎn)擊與釋放之間發(fā)生的事件)時(shí)的CSS樣式;

2. a偽類的順序研究

鼠標(biāo)經(jīng)過的“未訪問鏈接”同時(shí)擁有a:link、a:hover兩種屬性,后面的屬性會(huì)覆蓋前面的屬性定義;

鼠標(biāo)經(jīng)過的“已訪問鏈接”同時(shí)擁有a:visited、a:hover兩種屬性,后面的屬性會(huì)覆蓋前面的屬性定義;

a:active是鼠標(biāo)點(diǎn)擊與釋放之間發(fā)生的事件,并擁有鼠標(biāo)懸停a:hover屬性;

由于偽類的選擇器優(yōu)先級(jí)一致,后面的a鏈接樣式會(huì)覆蓋前面的。

所以說,
a:hover定義一定要放在a:link、a:visited的后面,才能在鼠標(biāo)懸停時(shí),a:hover樣式不被a:link和a:visited樣式覆蓋;

a:visited一定要放在a:link的后面,因?yàn)檫@樣能保證訪問過的鏈接具有a:visited樣式,并能覆蓋a:link默認(rèn)樣式;

a:active一定要放在a:hover后面。假如a:active放在a:hover前面,由于a:active擁有鼠標(biāo)懸停a:hover屬性,當(dāng)鼠標(biāo)按下時(shí),首先會(huì)觸發(fā)a:hover事件,然后觸發(fā)a:active,但是a:ctive已被a:hover的樣式所覆蓋,因此無法看到a:active的樣式。所以,a:active一定要放在a:hover后面。

綜上所述,a偽類的順序?yàn)椋篴:link > a:visited > a:hover > a:active。

a偽類的順序?yàn)椋篴:link > a:visited > a:hover > a:active

也有人這么記a偽類的順序:

L-V-H-A

即love & hate;

其實(shí)理解了原理,便不難記憶了。歸根到底,是觸發(fā)事件的先后問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容