html - 将鼠标悬停在按钮上时,CSS top img 不直接位于背面 img 的顶部
问题描述
我有一个按钮,上面放了两个图标,一个是灰色的,一个是蓝色的。我通过添加隐藏了蓝色图像display: none;
,当我将鼠标悬停在按钮上时,我将 css 更改为display: block;
. 蓝色图像显示但不直接覆盖灰色图像。
.page-btn-icon {
vertical-align: middle;
width: 36px;
height: 36px;
margin: 0 4px;
background-color: #ffffff;
border: 1px solid #dee2e6;
border-radius: 18px;
-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
cursor: pointer;
outline: 0 none !important;
}
.page-btn-icon .icon {
width: 16px;
height: 16px;
}
.page-btn-icon .img-top {
display: none;
}
.page-btn-icon:hover .img-top {
display: block;
}
<button class="page-btn-icon">
<!--<img class="icon" src="{% static 'img/icons/filter_g.png' %}">
<img class="icon img-top" src="{% static 'img/icons/filter_b.png' %}">-->
<img class="icon" src="https://dummyimage.com/16x16/fff/aaa">
<img class="icon img-top" src="https://dummyimage.com/16x16/aaa/fff">
</button>
截屏:
解决方案
这解决了这个问题,使第一个图像display:none
悬停时,第二个图像从 更改display:none
为display:inline-block
。
.page-btn-icon {
vertical-align: middle;
width: 36px;
height: 36px;
margin: 0 4px;
background-color: #ffffff;
border: 1px solid #dee2e6;
border-radius: 18px;
-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
cursor: pointer;
outline: 0 none !important;
}
.page-btn-icon .icon {
width: 16px;
height: 16px;
}
.page-btn-icon .img-top,
.page-btn-icon:hover .icon {
display: none;
}
.page-btn-icon:hover .img-top {
display: inline-block;
}
<button class="page-btn-icon">
<img class="icon" src="https://dummyimage.com/16x16/fff/aaa">
<img class="icon img-top" src="https://dummyimage.com/16x16/aaa/fff">
</button>
我会摆脱这两个图像,并根据悬停状态翻转按钮的背景图像。干净多了。
.page-btn-icon {
vertical-align: middle;
width: 36px;
height: 36px;
margin: 0 4px;
background-color: #ffffff;
border: 1px solid #dee2e6;
border-radius: 18px;
-webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);
cursor: pointer;
outline: 0 none !important;
background-image: url('https://dummyimage.com/16x16/fff/aaa');
background-position: center center;
background-repeat: no-repeat;
}
.page-btn-icon:hover {
background-image: url('https://dummyimage.com/16x16/aaa/fff');
}
<button class="page-btn-icon">
</button>
推荐阅读
- python - 如何将对象更改为数字?
- ios - 全局数组不附加
- angular - 为什么我的 Angular KeyValueDiffer 以前的值为 null?
- c# - Visual Studio:使用命名空间添加新类和自动创建文件夹(并将其放在那里)的快捷方式/方法?
- azure - 如何使用 Powershell 将所有机密从一个 Azure Keyvault 复制到另一个
- android - 类型不匹配:推断类型是 BluetoothDevice?但蓝牙设备是预期的
- android - 添加 exoplayer 2.9.6 errtransformClassesWithDexForDebug 后 Androd gradle 错误
- heroku - 更新 heroku 管道环境变量
- python - 为什么我的数据不会在 qt4 中使用 python 绘制到 Canvas 上?我附上了代码
- javascript - 为什么有时异步代码中的错误会导致 node.js 服务器崩溃