css - 带有关闭按钮的纯基于 CSS 的下拉菜单
问题描述
所以我有一个简单的下拉菜单,可以在悬停或聚焦时激活(桌面悬停,移动聚焦,效果很好。
我的问题是我试图在下拉列表中添加一个关闭按钮,但我似乎无法弄清楚如何实现这一点。我想要做的是跨度的焦点(关闭......如果有帮助,我可以用一个按钮替换)可能会松散父div的焦点,所以它会关闭。关闭按钮仅在移动设备上显示,因为下拉菜单是 100% 和 100% 高度,因此无法像桌面网站那样单击以失去焦点
这是我到目前为止所拥有的:
.group:hover .group-hocus\:block,
.group:focus .group-hocus\:block {
display: block;
}
.hidden {
display: none;
}
<div class="group">
<button>open</button>
<div class="group-hocus:block hidden">
<span style="padding: 5px;">x Close</span><br />
Content Here...
</div>
</div>
这是否可能仅使用 CSS,如果可以,我将如何去做?
解决方案
您可以focus-within
通过向其添加 tabindex 来使用并使您的关闭元素可聚焦:
.group:hover .group-hocus\:block,
.group:focus .group-hocus\:block {
display: block;
}
.hidden {
display: none;
}
.group-hocus\:block {
width:200px;
height:200px;
border:3px solid red;
}
.group-hocus\:block span {
font-size:25px;
color:green;
cursor:pointer;
outline:none;
}
.group-hocus\:block:focus-within {
display:none!important;
}
<div class="group">
<button>open</button>
<div class="group-hocus:block hidden">
<span style="padding: 5px;" tabindex="-1">x Close</span><br />
Content Here...
</div>
</div>
推荐阅读
- javascript - javascript中奇怪的字符串值
- django - 登录时 Django 用户丢失组(但不是权限)
- rust - 在 Rust 的 match arm 中调用多个函数
- c# - 主顶部菜单和右键单击上下文菜单之间的 WPF 共享菜单
- python - pandas : groupby + 条件 + 遍历一列
- java - 删除sql数据库中的重复行
- vb.net - 文本框不刷新
- uart - 使用 MicroPython 通过 USB 连接将数据写入 ESP32
- javascript - 如何使用 javascript/react 减小 PDF 文件的大小?
- swift - 当我在子级 [SwiftUI] 中关闭 rootViewController 时处理父级中的值