WCAG 2.0建議還使用:focus
當:hover
用於鏈接元素以支持鍵盤導航。這適用於鏈接元素,但兩者之間有一些差異。use:focus as:懸停替換鍵盤導航
- 任何元素都可以有
:hover
狀態,而只有極少數能懸停在一個元素時集中 - ,也將鼠標懸停在其所有的父元素。這與焦點並非如此
這個問題是嚴格關於CSS。有沒有辦法模擬鍵盤導航:hover
(如上所述)的行爲?或者有沒有強烈的理由爲什麼不想要那樣?
爲了讓更多在這裏明確的是一個例子:
HTML:
<div id="box">
foo bar
<a href="#">click me</a>
</div>
CSS:
#box {
opacity: 0.3;
}
#box:hover {
opacity: 1;
}
#box a:focus {
opacity: 1;
}
當使用鼠標時,我會使用它之前將鼠標懸停在鏈接元素。由於:hover
狀態向上傳播#box
將完全不透明。
當使用鍵盤時,我會在使用它之前關注鏈接元素。由於:focus
狀態不是向上傳播#box
將而不是是完全不透明的。
非常有趣......但我非常確定'opacity'只是不能在':focus'上工作,而不是反過來。基於我所知道的,你只能改變一些屬性,比如':active' /':focus' /':visited' ..我可能是錯的,但是..見http://jsfiddle.net/8G4bY/...編輯...看起來好像'opacity'在少數情況下工作.. http://jsfiddle.net/GcxMk/ –
[angular-deep-blur](https://github.com/ myplanet/angular-deep-blur)有點相關。它檢查被聚焦的元素是否在指定的子樹中,並且從該子樹中的每個模糊事件中隨時執行代碼。 – tobib