问题
I'm using border-radius: 50%;
to make an image round. By default the image is blurred and zoomed (with a hidden overflow) and on hover it will remove the blur and zoom. However, when I use a CSS transition on the element, it temporarily shows the overflow for the duration of the transition.
http://jsfiddle.net/jonny_me/cyvL61qx
回答1:
I believe on transition, the element gets taken out of document flow, something like a shadow position: relative;
and put back in once the animation is complete.
If you force the z-index
of the parent to be higher than that of the child, the parent should continue to clip the overflow.
http://jsfiddle.net/cyvL61qx/4/
figure.effect-park {
background-color: #0D4C16;
border-radius: 50%;
z-index: 1;
}
figure.effect-park img {
z-index: 0;
opacity: 0.5;
-webkit-filter: blur(1.5px);
filter: blur(1.5px);
-webkit-transform: scale(1.15);
transform: scale(1.15);
-webkit-transition: opacity 0.2s, -webkit-transform 0.2s;
transition: opacity 0.2s, transform 0.2s;
}
回答2:
Just make border-radius inherit
.parent {
border-radius: 50%;
}
.parent img {
border-radius: inherit;
}
来源:https://stackoverflow.com/questions/27934887/images-border-radius-doesnt-work-during-css-transition