You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何包含<div>子元素的<a>标签无法触发:focus-visible伪类?

问题:Brave浏览器中包含

在进行键盘无障碍适配时,发现基于Chromium内核的Brave浏览器中,当标签包含

子元素时,为:focus-visible定义的样式无法显示,推测该伪状态未被应用,请问原因是什么?

代码示例

CSS

*:focus {
    outline: none;
}

a:focus-visible {
  outline: 2px solid #d3af7a;
  outline-offset: 2px;
}

HTML

<a href="https://example.com">
  this can be focused and trigger styles in :focus-visible
</a>

<a href="https://example.com">
  <div>
    this can be focused but cannot trigger styles in :focus-visible
  </div>
</a>

原因分析

在Chromium内核的浏览器(包括Brave)中,当标签包含块级子元素(如

)时,键盘聚焦的焦点逻辑会出现异常:

另外,全局的*:focus {outline: none;}规则移除了所有元素的默认焦点样式,进一步掩盖了焦点传递的异常,让问题表现得更明显。

解决方法

可以通过以下几种方式修复:

内容的提问来源于stack exchange,提问作者John Winston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:45:09