- 更新**因为我仍然不知道如何做到这一点,我很高兴知道它。只是提醒这是关于可访问性和使用键盘只(没有鼠标),人们似乎不明白的事情,到目前为止,使这个问题陷入深渊,即使我觉得这是有趣的。
我试图提高我的网站的可访问性,我有一个问题,一个div显示只有当它自己或前一个元素被聚焦/悬停。
这个div中有一个输入,我希望它可以通过键盘导航访问,但是当焦点放在输入上时,它不认为div是这样的。
所以我想知道如何检测焦点何时移到这个输入上,并保持父div显示?
我已经尝试过css,但是我们不能选择parent(除了:had,但是还没有实现)。
我也搜索过使用JavaScript和jQuery的解决方案,但我不知道如何实现。
.b {
display: none;
}
.a:hover+.b,
.a:focus+.b,
.b:hover,
.b:focus {
display: block;
}
<button class="a">A button that displays the div</button>
<div class="b">
<input type="checkbox">
</div>
实际上,当你聚焦按钮时,div会出现,但是当你使用制表输入时,div会消失。我希望它在输入聚焦时保持显示。
它的工作,如果你点击按钮,问题只发生在你不使用鼠标。
我发现:focus-within,但它不是在所有浏览器上实现。
1条答案
按热度按时间ie3xauqp1#
所以你的问题是,当你点击复选框,即当复选框被选中,那么它应该是
display: block
,直到它被选中。当你再次取消选中它,它应该像以前一样工作,即按钮焦点display: block
否则display: none
我是正确的吗?