html - 悬停在子 div 上在父 div 上添加阴影
问题描述
我正在做的是,当我将鼠标悬停在我的文本上时,我必须在父 div 上显示阴影。我尝试了下面的代码并且它正在工作,但是如果我删除悬停,那么我的按钮将不可点击。
因为我习惯 pointer-events: none;
了父 div。有没有其他最好的方法可以将鼠标悬停在子 div 上并在父 div 上留下阴影pointer-events: none;
?我的父 div 上有 4-5 个按钮。
.box {
width: 400px;
height: 400px;
position: relative;
margin: 40px;
pointer-events: none;
background-color: #fff;
border: 1px solid #f1f1f1;
}
.box .child {
position: absolute;
right: 20px;
top: 20px;
pointer-events: auto;
}
.box:hover {
-webkit-box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
-moz-box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
}
<div class="box">
<div class="child"><a href="">Hover me</a></div>
<a href="" class="clickme">click me</a>
</div>
解决方案
使用伪元素制作阴影:
.box {
width: 400px;
height: 400px;
position: relative;
margin: 40px;
background-color: #fff;
border: 1px solid #f1f1f1;
transform:translate(0); /* to make the fixed element relative to the parent */
}
.box .child {
position: absolute;
right: 20px;
top: 20px;
}
.box .child::before {
content:"";
position:fixed; /* not absolute but fixed */
top:0;
left:0;
right:0;
bottom:0;
pointer-events: none;
}
.child:hover::before {
-webkit-box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
-moz-box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
box-shadow: 0px 0px 13px -9px rgba(0, 0, 0, 1);
}
<div class="box">
<div class="child"><a href="">Hover me</a></div>
<a href="" class="clickme">click me</a>
</div>
推荐阅读
- php - 连续更新值 PHP/MySql
- javascript - 向下滚动页面时自定义光标消失
- c++ - 如何比较 C/C++ 中的数组元素?
- c# - 在 ASP.NET CORE 中使用 EF 插入 ID 时出现 SQL 错误
- python - “产品”类没有“对象”成员
- python - 为什么即使在迁移之后也会抛出错误?(没有这样的表:accounts_userstripe)
- python - 无法为 Docker 安装 software-properties-common
- android-studio - 如何解决 sqlite_error
- java - 如何在显示类路径异常的android studio构建问题中修复Gradle
- css - 如何在 Bootstrap-vue 中更改导航栏链接的颜色