出處:[[子匠_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ā)事件的先后問題。