【问题标题】:Show element outline only on tab but not on click仅在选项卡上显示元素轮廓,但在单击时不显示
【发布时间】:2019-10-04 19:45:48
【问题描述】:

如果我转到developer.mozilla.org 并通过下拉菜单选项卡,我会得到带有轮廓的元素,这对于可访问性来说完全没问题:

但是如果我点击它,我没有得到大纲:

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

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

【问题讨论】:

  • outline:none;?
  • 在你的 css 大纲中:无;
  • @Pete,是的,我已经尝试过了,但它不起作用
  • 能否提供html代码
  • 所以是不想显示大纲还是想显示?你的问题和评论的人是不同的观点。单击 Mozilla 网站上的该链接会转到另一个页面,因此在页面重新加载后它应该显示任何大纲是没有意义的。

标签: javascript html css less


【解决方案1】:

试试这个

a {
  color: @brand-link;

  &:focus {
    outline: none;
  }

}

【讨论】:

【解决方案2】:

: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;  
}

【讨论】:

  • 嗨,阿尔伯特,感谢您的回答,我想要的是当您在元素上按标签显示其默认轮廓,但单击时不显示此轮廓
  • 实际上您的答案似乎是使用链接解决问题的解决方案
  • 这行得通:a:focus:not(:link:active) { outline: -webkit-focus-ring-color auto 5px; }
  • 这很疯狂,因为在我的脑海中它不应该工作。这并不意味着我是对的,无论如何。至少你得到了答案。
  • 我阅读了文档,它说用于未访问的元素,但它至少在 chrome 和 FFox 中有效:/
猜你喜欢
  • 2018-07-25
  • 1970-01-01
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
相关资源
最近更新 更多