我有两个div。Page1有一个按钮...如果将鼠标悬停在它上面,它将更改其颜色。
如果我在后台使用webkit-transform添加page2 div,则按钮将不再更改其颜色。
的HTML
<div class="page1">
<button>hover</button>
</div>
<div class="page2"></div>
的CSS
.page1 {
width: 300px;
height: 300px;
border: 1px solid #333;
position: relative;
background: #FFF;
z-index: 2;
}
.page2 {
width: 300px;
height: 300px;
background: #999;
border: 1px solid #333;
-webkit-transform: matrix3d(0.78784, 0, 0.13891, -0.00034, 0, 0.8, 0, 0, -0.17364, 0, 0.9848, -0.00246, 0, 0, 0, 1);
position: absolute;
top: 0;
left: 50px;
z-index: 1;
}
button {
position: absolute;
top: 50%;
right: 1px;
background: green;
border: 0;
font-size: 18px;
color: #FFF;
}
button:hover {
background: red;
}
如前所述,.page2
由于该transform
属性,该元素呈现在另一个元素的前面。
解决此问题的一种方法是将其添加pointer-events: none
到元素中,以防止其影响其他元素。
.page2 {
pointer-events: none;
}
如MDN所述:
值“ none”指示鼠标事件“遍历”该元素并定位该元素“之下”的内容。
的替代方法pointer-events
是将该元素提出来translateZ
。
button {
-webkit-transform: translateZ(20px);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句