css偽類的順序

首先我們需要知道css偽類是用來添加一些選擇器的特殊效果。

  • link表示的是正常情況下鏈接的樣式。
  • visit代表鏈接訪問后的樣式,則鏈接一旦被訪問,則之后它的樣式就會是你所設置的visited樣式。
  • hover在鼠標移到鏈接上時添加的特殊樣式。
  • focus 在一個元素成為焦點時生效,用戶可以通過鍵盤或鼠標激活焦點。
  • active在一個元素處于激活狀態(tài)(鼠標在元素上按下還沒有松開)時所使用的樣式。
  • hover理論上任何元素都可以使用的,focus多是針對表單的,如input等 。而active多用于鏈接。

順序

這四種偽類存在著一定的順序,成為LVHA順序。各個樣式之間的順序很有講究,一旦出現(xiàn)排列錯誤就很有可能形成覆蓋,導致其中某個樣式無法顯示。
比如,link與visit的位置是隨意的。但hover,focus,active則必須按照focus--hover--active這個順序。
link與visit的位置是任一的是因為link指的是元素被訪問前的樣式,而visit這指的是訪問后的。而其他三個則與css的就近原則有關(guān)。
比如

a:focus{
background-color:red;
}
a:hover {
background-color:yellow;
      }   
a:active{
background-color:black;
}
<body>
<a href="#">zyy</a>
</body>

在這段代碼中當我們時,我們把鼠標放上去是,會顯示黃色


hover

點擊時顯示的是黑色

active

松開后是黃色移開鼠標是紅色。

focus

然后我試著將這三個css的順序變換得到了下面的結(jié)果
(h:hover a:active f:focus)

懸停 點擊 松開 焦點
fha yellow black yellow red
fah yellow yellow yellow red
afh yellow yellow yellow red
ahf yellow red red red
haf yellow red red red
hfa yellow black red red

分析

  • 由表格可以看出hover的位置不會影響懸停時樣式的顏色,但它會間接影響其他兩種樣式的效果。
  • active必須要在focus,hover的后面,否則就會被覆蓋。
  • focus的位置很關(guān)鍵它與其他兩個的位置會影響一系列樣式的效果。

引用

http://www.bubuko.com/infodetail-767726.html
http://hovertree.com/hvtart/bjae/v8e7w4u1.htm
http://www.w3school.com.cn/cssref/selector_hover.asp
http://www.bkjia.com/webzh/873587.html

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

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