国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

在CSS中定義a:link、a:visited、a:hover、a:active正確順序

2024-07-11 08:29:25
字體:
供稿:網(wǎng)友
以前用CSS一直沒有遇到過這個問題,在最近給一個本科同學(xué)做的項目里面。出現(xiàn)一些問題,搜索引擎查了一些網(wǎng)站和資料,發(fā)現(xiàn)很多人問到這個問題,給出的結(jié)果我試了試,大部分都不正確。
給出我試的順序,可能會對大家有一些幫助:

復(fù)制代碼
代碼如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->A:link {
color: #000000;
TEXT-DECORATION: none
}
A:visited {
COLOR: #000000;
TEXT-DECORATION: none
}
A:hover {
COLOR: #ff7f24;
text-decoration: underline;
}
A:active {
COLOR: #ff7f24;
text-decoration: underline;
}

今天看到一位匿名朋友的問題,又去查了一些資料,這個人講的非常透徹:引自靈眸●第一爐沉香博客
a :link、a:hover、a:visited這幾個元素,定義CSS時候的順序不同,也會直接導(dǎo)致鏈接顯示的效果不同。
我想,原因就在于瀏覽器解釋CSS時遵循的“就近原則”。

舉例來說:
我想讓未訪問鏈接顏色為藍色,活動鏈接為綠色,已訪問鏈接為紅色:
第一種情況:我定義的順序是a:visited、a:hover、a:link,這時會發(fā)現(xiàn):把鼠標(biāo)放到未訪問過的藍色鏈接上時,它并不變成綠色,只有放在已訪問的紅色鏈接上,鏈接才會變綠。
第二種情況:我把CSS定義順序調(diào)整為:a:link、a:visited、a:hover,這時,無論你鼠標(biāo)經(jīng)過的鏈接有沒有被訪問過,它都會變成綠色啦。

這是因為,一個鼠標(biāo)經(jīng)過的未訪問鏈接同時擁有a:link、a:hover兩種屬性,在第一種情況下,a:link離它最近,所以它優(yōu)先滿足a:link,而放棄a:hover的重復(fù)定義。
在第二種情況,無論鏈接有沒有被訪問過,它首先要檢查是否符合a:hover的標(biāo)準(zhǔn)(即是否有鼠標(biāo)經(jīng)過它),滿足,則變成綠色,不滿足,則繼續(xù)向上查找,一直找到滿足條件的定義為止。
一句話:在CSS中,如果對于相同元素有針對不同條件的定義,宜將最一般的條件放在最上面,并依次向下,保證最下面的是最特殊的條件。
這樣,瀏覽器在顯示元素時,才會從特殊到一般、逐級向上驗證條件,才會使你的每一個CSS語句都起到效果。
當(dāng)然,如果故意打亂順序,也會造成一些特殊的效果。比如,可以為鏈接制造出下劃線顏色與文字顏色的差異。
近日突然發(fā)現(xiàn),原來這個CSS問題早已有高人提出啦。還是個老外呢。他給總結(jié)了一個便于記憶的“愛恨原則”(LoVe/HAte),即四種偽類的首字母:LVHA。
再重復(fù)一遍正確的順序:a:link、a:visited、a:hover、a:active .

最后經(jīng)驗補充:
1.鼠標(biāo)經(jīng)過的“未訪問鏈接”同時擁有a:link、a:hover兩種屬性,后面的屬性會覆蓋前面的屬性定義;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 和林格尔县| 临沂市| 青岛市| 临猗县| 神木县| 邯郸县| 台东县| 建湖县| 和硕县| 株洲市| 涞源县| 仁化县| 陇川县| 衡阳县| 财经| 仁布县| 永新县| 南部县| 保德县| 勐海县| 砚山县| 巴楚县| 余干县| 东安县| 永城市| 锡林浩特市| 麻阳| 鹿泉市| 日喀则市| 溧水县| 安徽省| 天长市| 雷波县| 云林县| 泗水县| 嘉荫县| 石泉县| 池州市| 莱西市| 南雄市| 石景山区|