css 添加边框半径时边框和图像之间的间隙

zu0ti5jz  于 2022-12-24  发布在  其他
关注(0)|答案(7)|浏览(280)

我有一张边界半径为50%的图片,周围有一个3px的边界,我的问题是当边界半径给定时,图片和边界之间有一个1px的间隙。
问题如下图所示。

我用的CSS,

img {
    border: 3px solid #4CB7AC;
    height: 46px;
    width: 46px;
    border-radius:50%;
}

请注意

  • 图像大小为46px X 46px。未调整大小。
  • 而且我必须使用<img>来获取图像。将其设置为背景图像被排除。
  • 解决方案必须兼容所有浏览器。甚至IE8。

有没有办法消除这种差距?
编辑JS Fiddle link

lndjwyie

lndjwyie1#

只需添加Background color相同的边框颜色和它的固定。
参见jsFiddle

gijlo24d

gijlo24d2#

background-color的建议效果很好,但是如果您的背景颜色不够理想(例如,PNG图像的透明度较差),则可以使用background-clip: border-box;
有关该属性的更多详细信息,请参见background-clip on MDN

j5fpnvbx

j5fpnvbx3#

试着这样做:

img {
    border: 3px solid #4CB7AC;
    height: 46px;
    width: 46px;
    -webkit-border-radius: 46px 46px 46px 46px;
    border-radius: 46px 46px 46px 46px;
}

此外,对于IE8和更低版本,请尝试使用条件注解替换边框半径并添加通用. png图像

<!--[if lte IE 8]>
Image source 
 <![endif]-->
    • 更新**

您看到的间隙是使用border-radius的一个"bug",您也可以尝试通过添加与边框颜色相同的图像背景色来修复它:

img {
        border: 3px solid #4CB7AC;
        height: 46px;
        width: 46px;
        -webkit-border-radius: 46px 46px 46px 46px;
        border-radius: 46px 46px 46px 46px;
        overflow: hidden;
        background-color: #4CB7AC;
    }
lnlaulya

lnlaulya4#

font-size:0添加到img应该可以解决您的问题。

dpiehjr4

dpiehjr45#

无溢出:隐藏使用LEFT和Top,高度也等于父级

min-height: 52px;
      bottom: 1px;
      left: 0.5px;

zbsbpyhn

zbsbpyhn6#

在这种情况下,您可以在CSS文件的顶部尝试以下操作:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

为了防止图片缩小,你可以在你的img类中添加以下CSS规则:object-fit: cover; .

b1uwtaje

b1uwtaje7#

首先你应该给img标签添加一个类:

<img src="/image.png" class="img-author">

否则,它将改变您网站中的所有图像。
你可以使用css的"object-fit"属性来修正这个小缺口。
x一个一个一个一个x一个一个二个x

相关问题