關於css中a標簽的樣式


CSS為一些特殊效果准備了特定的工具,我們稱之為“偽類”。其中有幾項是我們經常用到的,下面我們就詳細介紹一下經常用於定義鏈接樣式的四個偽類,它們分別是:

  • :link
  • :visited
  • :hover
  • :active

因為我們要定義鏈接樣式,所以其中必不可少的就是超級鏈接中的錨標簽--a,錨標簽和偽類鏈接起來書寫的方法就是定義鏈接樣式的基礎方法,它們的寫法如下:

  • a:link,定義正常鏈接的樣式
  • a:visited,定義已訪問過鏈接的樣式
  • a:hover,定義鼠標懸浮在鏈接上時的樣式
  • a:active,定義鼠標點擊鏈接時的樣式

示例:

a:link {
    color:#FF0000;
    text-decoration:underline;
}

a:visited {
    color:#00FF00;
    text-decoration:none;
}
    
a:hover {
    color:#000000;
    text-decoration:none;
    }
    
a:active {
    color:#FFFFFF;
    text-decoration:none;
}

上面示例中定義的鏈接顏色是紅色,訪問過后的鏈接是綠色,鼠標懸浮在鏈接上時是黑色,點擊時的顏色是白色。

如果正常鏈接和已訪問過的鏈接樣式相同,鼠標懸浮和點擊時的樣式相同,也可以將它們合並起來定義:

a:link, a:visited {
    color:#FF0000;
    text-decoration:underline;
}    

a:hover, a:active {
    color:#000000;
    text-decoration:none;
}

鏈接定義的順序

沒有規矩不成方圓,雖然鏈接定義寫好了,但它也是有規則的,如果這四項的書寫順序稍有差錯,鏈接的效果可能就沒有了,所以每次定義鏈接樣式時務必確認定義的順序,link--visited--hover-active,也就是我們常說到的LoVe HAte原則(大寫字母就是它們的首字母)。

老外總結了一個便於記憶的“愛恨原則”(LoVe/HAte),即四種偽類的首字母:LVHA。定義A鏈接樣式的正確的順序:a:link、a:visited、a:hover、a:active。

為什么我們不能改變定義的順序?做下測試就可以了。

假設我們想實現下面的樣式:

狀態 樣式 顏色
已訪問 a:visited
未訪問 a:link
選定 a:active
鼠標移入 a:hover

鼠標移入時,並沒有變黃。而是當這個鏈接已經被訪問過后,鼠標移入才變黃:

a:visited{color:red;}
a:hover{ color:yellow;}
a:link{ color:blue;}
a:active{ color:green;}

這是因為,一個鼠標經過的未訪問的鏈接同時擁有a:link,a:hover兩種屬性,在上述的CSS樣式中,a:link離他最近,先滿足a:link,而放棄a:hover的重復定義。

而使用LVHA順序聲明后,它首先檢查a:hover的符合標准,先變色。

所以說,為了符合瀏覽器解釋CSS遵循的"就近原則"。我們在定義CSS中,宜將最一般的條件放在最上面,並依次向下,最下面放最特殊的。

在W3C規范中,也規定了鏈接的聲明順序:

  1. 在 CSS 定義中,a:hover 必須被置於 a:link 和 a:visited 之后,才是有效的。
  2. 在 CSS 定義中,a:active 必須被置於 a:hover 之后,才是有效的。

注意:未設置“href”屬性的a標簽其:link和:visited偽類將無法生效

參考自:簡明現代魔法~略有改動~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM