html - 使用 CSS 显示下拉焦点的正确方法

标签 html css

我正在尝试制作一个可通过键盘访问的菜单,但我不知道如何让它显示焦点下拉菜单。

我有

.main-menu li:hover ul,
.main-menu li:focus ul {
    display: block;
}

问题是,当它聚焦于嵌套在 li 中的 a 而没有显示 ul 时。制表符专注于 a 标签。

这是我的完整代码:http://jsfiddle.net/bxpe4/

最佳答案

另一个可能在这里使用的属性是:focus-within。因此,如果您执行以下操作,它也应该有效。

.main-menu li:hover ul,
.main-menu li:focus-within ul {
    display: block;
}

focus-within 伪类不仅关心当前元素,还关心它的所有子元素。我认为这是解决此问题的一个非常干净的解决方案,并且对我的问题有效。

关于html - 使用 CSS 显示下拉焦点的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18903716/

相关文章:

javascript - Sprite 表在渲染过程中提供任何优势吗?

html - CSS 网格区域根据内容将其他区域推离位置

html - flex 元素 - 填充剩余的容器高度

javascript - JS 定时器手动设置时间

javascript - React下拉菜单的jss样式

html - 使用 Nokogiri 解析 HTML 并获取最接近 "<div>"的文本

javascript - 从一组按钮转移到另一组按钮

html - 随着其他列变长而更改列高

css - 如何使一个 div 居中并将另一个 div 置于右侧?

javascript - 样式表在 <canvas> 上未正确裁剪