【发布时间】:2020-06-02 11:57:38
【问题描述】:
在当前 Chrome (80) 中检查以下 sn-p:
foo.addEventListener('click', () => {
console.log('button activated');
})
button:active {
background-color: yellow;
}
<button type="button" id="foo">Activate me using Click, Enter, Space</button>
当按钮被点击(向右或向左)或使用 Space 激活时,Chrome 应用 button:active 样式,但在使用激活时不会> 输入。
Firefox 仅在 单击(仅限鼠标左键)按钮时应用 button:active 样式。
有谁知道
- 这是应该如何工作的,以及
- 如何让按钮显示
button:active,无论哪个 使用了哪些激活方式?
我非常喜欢基于 CSS 的解决方案。使用关键侦听器添加/删除类将是一个非常丑陋的解决方案,并且不在此问题的范围内。
编辑
必须有,或者至少应该有一种标准方式,让用户使用 Enter 对他们的操作进行视觉反馈来激活按钮。 此行为是否未在某处指定?如果是,我可以在 Mozilla 错误跟踪器和 Chromium 问题跟踪器上将其作为问题提出。
【问题讨论】:
-
我想你在寻找
:focus不活跃? -
@Awais 不幸的是,并非如此。当用户使用 Enter 激活按钮时,必须有一种标准的方式给用户视觉反馈,不是吗?
-
@connexo 但在第二个链接stackoverflow.com/questions/51189109/… 你会看到当我输入密码并按下进入按钮更改的用户界面时,这不是你的意思
-
我 - 如问题所述 - 不是在寻找基于 Javascript 的解决方案。应该有一个解决方案,即使由于某种原因 Javascript 不可用,它也可以工作。
标签: html css pseudo-class