如果我转到developer.mozilla.org并通过下拉列表进行制表,我会得到带有大纲的元素,这对于可访问性来说完全没有问题:
但是如果我点击它,我不会得到大纲:
我已经尝试过只使用pseudoclass:focus,excluiding:active来实现这一点,但它仍然不起作用:
a {
color: @brand-link;
&:focus:not(:active) {
outline: -webkit-focus-ring-color auto 5px;
}
&:active {
outline: none;
}
}
有人知道如何实现大纲严格只为标签导航,但没有点击的元素?
顺便说一句,我用得更少了.
这里有一个例子,如果你点击它,它会概述它gold
彩色:
a:focus {
outline: 4px solid gold;
}
a:active {
outline: none;
}
<a href="/">FOO LINK</a>
我希望金色只是在标签导航可见,但不是当点击元素
3条答案
按热度按时间fnvucqvd1#
:active
是在单击时触发的伪类。将显示这个onclick。jsfiddle for you to see。
Very informative post on differences between
:hover
,:active
, and:focus
。:link
表示尚未访问的元素。reference编辑:
解决方案是:
jhkqcmku2#
对于任何需要它的人,这里有一个(非常现代的)解决方案,使用
:focus-visible
而不是:focus
(链接不会转到任何地方,以便您可以看到解决方案的实际效果):如果您尝试Tab键到上面代码片段中的元素,则会显示大纲;如果你尝试直接点击它,轮廓将显示
not
.:focus-visible
的功能与:focus
相同,除了:focus
样式无论如何都应用于焦点元素,:focus-visible
让浏览器确定(通过一些涉及焦点环的计算)是否需要焦点元素的样式。我自己也不太明白这一点,所以为了更好地解释这一点,并比我能提供的更多澄清,请参阅:https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible#focus_vs_focus-visible。如果你担心浏览器的兼容性,是的,这是一个相当新的功能(可能是为什么这在以前的答案中没有提到,虽然他们不是很久以前)。请参阅here了解一些细节。希望这个答案能帮助到别人。请随意编辑这个答案,使它更好,因为我不是一个伟大的回答者。
pexxcrt23#
试试这个