图像剪切父元素的边界半径? (Safari浏览器)

时间:2018-02-19 22:47:02

标签: html css css3 border clipping

是什么原因导致图片剪辑父母元素的border-radius?图像和父元素都应用了border-radius: 50%,但它仍然会导致剪辑。

这是我在Safari中遇到的问题:

enter image description here

从我所看到的,它似乎是特定于Safari的问题。有什么输入吗?

body {
  margin: 0;
  padding: 0;
  border: 0;
}

#photo-container {
  box-sizing: border-box;
  padding: 40px 25% 20px;
  line-height: 0;
  margin: 0;
}

#photo-container a {
  border: 2px solid blue;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  padding: 5px;
  display: block;
  box-sizing: border-box;
}

img#photo {
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  border: 0;
  padding: 0;
}
<div id="photo-container">
  <a id="#">
    <img id="photo" src="http://freedesignfile.com/upload/2018/02/most-beautiful-scenery-of-nature-Stock-Photo-04.jpg">
  </a>
</div>

2 个答案:

答案 0 :(得分:0)

最初加载页面时,它会在页面完全加载之前显示轻微的重叠错误,然后在我的Safari中正确加载。enter image description here

如果您仍然看到问题,我可以提出的唯一建议是将box-sizing: border-box;添加到#photo-container a

至于它为什么会发生,这就是为什么:

enter image description here

Safari似乎无法正确裁剪图像。因此,即使图像不可见,容器的边框也会被图像覆盖。我测试了几个不同的东西,比如减小图像的大小等,并且在多个阶段都有类似的问题,所以这不太可能是你可以100%考虑的事情。

答案 1 :(得分:0)

找到解决方案。将-webkit-backface-visibility: hidden;-moz-backface-visibility: hidden;应用于img#photo解决了边框裁剪问题。

img#photo {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  border: 0;
  padding: 0;
}