css - 有没有更优雅的方式来为按钮创建高光?
问题描述
.menu-item {
position: relative;
width: 40px;
height: 40px;
background-color: rgb(66, 66, 66);
}
.highlight {
position: absolute;
width: 40px;
height: 40px;
background-color: rgb(121, 121, 121);
border-radius: 8px;
display: none;
}
.menu-item:hover .highlight {
display: inline;
}
<div class="menu">
<div class="menu-item">
<div class="highlight"></div>
</div>
<div class="menu-item">
<div class="highlight"></div>
</div>
</div>
有没有办法在不使用额外的 div 元素的情况下实现这种高亮效果?我尝试使用径向渐变径向渐变,但我认为这不适用于圆角方形高光。
解决方案
将背景颜色向上移动.menu
.menu {
display: inline-block;
background-color: rgb(66, 66, 66);
}
.menu-item {
width: 40px;
height: 40px;
border-radius: 8px;
}
.menu-item:hover {
background-color: rgb(121, 121, 121);
}
<div class="menu">
<div class="menu-item"></div>
<div class="menu-item"></div>
</div>
使用伪选择器:
.menu-item {
position: relative;
width: 40px;
height: 40px;
background-color: rgb(66, 66, 66);
}
.menu-item::before {
content: '';
display: none;
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
border-radius: 8px;
background-color: rgb(121, 121, 121);
}
.menu-item:hover::before {
display: block;
}
<div class="menu">
<div class="menu-item"></div>
<div class="menu-item"></div>
</div>
推荐阅读
- mysql - ODBC select query with text field return no record
- javascript - 从 url 到 HTML 的 JSON
- c# - 使用同名 DLL 构建 .NET Core 项目时出现“找不到项目信息”错误
- python - 使用 AngularJS 在表中动态生成列
- c - 使用可变参数宏进行 C 日志记录
- sublimetext - SublimeLinter-contrib-remark-lint
- python - How to find the most basic materials in a crafting recipe (python)?
- react-native - Expo sdk 29/30:来自登录的会话 cookie
- android - android Linphone如何注销?
- java - O(N!*N) 是一个可接受的大复杂度类,还是我删除常量并只说 O(N!)?