chrome 和 safari 中的图像缩放错误
Image scaling error in chrome and safari
在我的网页中,我有一个 div border-radius:50%;在 div 我添加了一张图片,当悬停在该图片上时,它会缩放到 1.2。这东西在 mozilla 中正常工作,但是当我来到 chrome 和 safari 时,图像通过溢出它比圆形 div(边界半径: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);
}
悬停屏幕截图
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/
这是一种解决方案(在 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);
}
我编辑了你的代码查看结果here
它 chrome 缩放和溢出的 BUG。
对于具有 ( overflow:hidden ) 的容器
添加(在您的情况下是 .work-round )
position:relative;
z-index:1;
在我的网页中,我有一个 div border-radius:50%;在 div 我添加了一张图片,当悬停在该图片上时,它会缩放到 1.2。这东西在 mozilla 中正常工作,但是当我来到 chrome 和 safari 时,图像通过溢出它比圆形 div(边界半径: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);
}
悬停屏幕截图
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/
这是一种解决方案(在 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);
}
我编辑了你的代码查看结果here
它 chrome 缩放和溢出的 BUG。
对于具有 ( overflow:hidden ) 的容器 添加(在您的情况下是 .work-round )
position:relative;
z-index:1;