在我的网页上,我有一个带有border-radius的div:50%;在div中我添加了一个图像,当悬停在该图像上时,它会缩放到1.2。这个东西在mozilla中正常工作,但是当我来到chrome和safari时,图像通过溢出而不是圆形div(border-radius:50%)来缩放,为什么会发生这种情况。有什么方法可以解决这个问题吗?
码
HTML
<div class="work-round">
<img src="images/latestwork_01.png">
</div>
CSS
.work-round {
border: 5px solid rgba(255, 255, 255, 0.5);
border-radius: 50%;
margin: 10px auto;
max-height: 250px;
overflow: hidden;
width: 250px;
}
.work-round img {
background: none repeat scroll 0 0 #fff;
height: 100%;
min-height: 240px;
transition: all 0.5s ease-out 0s;
width: 350px;
}
.work-round img:hover {
opacity: 0.9;
transform: scale(1.2);
}
悬停
上的屏幕截图答案 0 :(得分:2)
nickspiel在此发现的解决方案:css3 border radius animation transition in safari not working
请参阅: https://jsfiddle.net/KyleKatarn/s0bpp0ho/6/
.work-round {
-webkit-mask-image: -webkit-radial-gradient(white, black);
要获得Safari的部分支持: https://jsfiddle.net/KyleKatarn/s0bpp0ho/7/
答案 1 :(得分:1)
这是一个解决方案(在Chrome上测试)
*{
background:red;
}
.work-round {
border: 5px solid rgba(255, 255, 255, 0.5);
border-radius: 50%;
margin: 10px auto;
max-height:250px;
overflow:hidden;
width:250px;
transition: all 2s linear;
-webkit-mask-image: -webkit-radial-gradient(circle, white, black);
}
.work-round img {
background: none repeat scroll 0 0 #fff;
height: 100%;
min-height: 240px;
transition: all 0.5s ease-out 0s;
width: 350px;
-webkit-border-radius: 500px;width:100%;height:100%;
}
.work-round img:hover {
opacity: 0.9;
-webkit-transform:scale(1.2);
}
答案 2 :(得分:1)
我修改了您的代码,查看结果here
它带有刻度和溢出的镀铬BUG。
对于具有(overflow:hidden)的容器 添加(在您的情况下是.work-round)
position:relative;
z-index:1;