javascript - 仅在选项卡上显示元素轮廓,但不在单击时显示

标签 javascript html css less

如果我去 developer.mozilla.org并在下拉菜单中切换我得到带有轮廓的元素,这对于可访问性来说完全没问题:

enter image description here

但是如果我点击它,我看不到轮廓:

enter image description here

我已经尝试通过仅使用伪类 :focus 来实现这一点,排除 :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>

我希望金色仅在选项卡导航中可见,但在单击元素时不可见

最佳答案

:active 是点击时触发的伪类。

a:link:active{outline:10px dotted #000;}

将准确显示此 onclick。 jsfiddle for you to see .
Very informative post on differences between :hover, :active, and :focus .

:link 代表一个还没有被访问过的元素。 reference

编辑:
解决方案是:

a:focus:not(:link:active) {  
outline: -webkit-focus-ring-color auto 5px;  
}

关于javascript - 仅在选项卡上显示元素轮廓,但不在单击时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187047/

相关文章:

javascript - 通过 jQuery 引入样式变化

html - 导航列表,内联和带间距

html - 如何围绕包装元素扩展容器

javascript - 如何在下拉菜单中为事件网页加下划线?

javascript - 如何从单个正则表达式验证文件名和文件扩展名?

javascript - float :Right images break out of div

javascript - meteor 集合正确观察变化

javascript - 使用 jquery 识别文本并将其加热到容器内

html - CSS:如何垂直对齐对象,以便增加标签的字体大小不会丢失所有内容?

CSS:改变分辨率时改变位置