#importSaveData {
position: absolute;
}
// 鼠标移入,亮度是降低了, 但是位置产生了变化,怎么破解
#importSaveData:hover {
filter: brightness(90%);
}
正常filer不会影响布局的,你是不设置了绝对定位没注意到,麻烦贴一下全部代码
检查下代码,filter滤镜不会影响,审查一下元素,如下图操作,选中你的元素,检查触发你的hover,看看有些什么样式
代码有点少,推导不出具体的原因,不过我复现了一种filter影响布局的情况,深层的原因应该是一样的,对你可能会有帮助
1.代码
<!DOCTYPE html>
<html lang="en">
<body>
<div class="box">
<div class="cell"></div>
</div>
</body>
</html>
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
margin-left: 10px;
}
.cell{
width: 50px;
height: 50px;
position: absolute;
background-color: blue;
left: 10px;
}
.box:hover{
filter: brightness(80%);
}
</style>
2.现象
原本的布局:
3.原因
当filter有值的时候,如果该元素或者子元素设置了absolute定位,那么创建一个新的容器(不可见)将其包含,因此会导致absolute用以定位的元素发生变化变成了创建的这个容器。
4.解决
为父元素即实例代码的.box添加relative定位,即可避免filter导致的定位变化问题。
基于问题,给与建议
备注:只要设置了当前目标块的其实坐标属性值,不会出现移动的问题,记得注意在多个absolute条件下 zIndex的问题
祝好