贝利信息

如何让 元素支持 :focus 伪类样式

日期:2026-01-18 00:00 / 作者:霞舞

元素支持 :focus 伪类样式 "> 元素支持 :focus 伪类样式 " />

默认情况下,`ails>` 元素不可聚焦,因此 `details:focus` 样式不会生效;需通过添加 `tabindex

="0"` 使其成为可聚焦的交互元素,才能正确响应 `:focus` 伪类。

在标准 HTML 中,只有原生可交互元素(如

✅ 正确做法:为

添加 tabindex="0"
该属性使元素成为显式可聚焦节点,既可通过键盘 Tab 导航进入,也可被 JavaScript 的 .focus() 方法调用,并真正触发 :focus 伪类:

点击或按 Tab 可聚焦此 summary

展开后可见的内容...

配合 CSS 即可实现焦点高亮效果:

details:focus {
  outline: none; /* 可选:移除浏览器默认焦点轮廓 */
  box-shadow: 0 0 0 2px #3b82f6; /* 自定义焦点样式,如蓝色光环 */
}

⚠️ 注意事项:

总结:

默认不可聚焦是符合规范的设计,若需 :focus 样式,唯一标准且兼容的方案就是为其添加 tabindex="0"。这一做法轻量、无侵入性,且完全符合 WAI-ARIA 实践指南。