众所周知,在某些浏览器中,overflow: hidden
与border-radius
结合使用时无法正常工作,特别是Safari和Opera会出现无法正确裁剪包含图像的圆角的问题。
示例HTML:
<a class="circle" href="#">
<img src="http://placekitten.com/300/300" alt="kitten" />
</a>
以及相应的CSS:
.circle {
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
height: 120px;
overflow: hidden;
width: 120px;
}
请查看这个jsfiddle
对于Safari和Opera,我使用背景图像作为备选方案,但只有在溢出无法正常工作的情况下才使用它。现在,我不想仅仅使用浏览器检测来判断,因为有已知的原因,我想要进行特性检测以正确地截断角落。通常我会像这样检查:
if('overflow' in document.body.style){
// overflow
} else {
// no overflow
}
但这不会有帮助...那么,有没有正确检查的方法呢?
img
也加上border-radius
呢?你甚至可以将边框添加到img
而不是其父元素。 - Rudiea
容器的大小,并在稍后“超大尺寸”恢复到图像的原始尺寸 - 就像缩略图一样,你可以点击查看全部内容。因此,a
内部的图像必须比容器更大。我正在研究一个解决方法 - 也许我以后会发布它... - AvLimg
和a
添加边框半径来实现。甚至可以使用clip
而不需要a
。(如果clip
转换,我不确定。) - Rudie