CSS实现圆形头像效果

特别声明:如果您喜欢小站的内容,可以点击年卡¥199.00元(原价: ¥598元)季卡¥78.00元(原价: ¥168元)月卡¥28.00元(原价: ¥68元)进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)

在Web开发中经常会碰到圆形图像的样式处理。在CSS中我们有很多种方式能实现圆形图形的效果,比如《聊聊CSS中的圆》一文中我们就介绍了很多种技术方案。在这些方案中有大家熟悉的border-radius,也有不熟悉的clip-path。这些制作圆形的方案都可以帮助我们实现圆形头像。在这篇文章中,我们就来看看圆形头像的实现方案。

圆形头像使用背景

圆形头像或者说圆形图形在Web的开发中是非常常见,特别是人物头像,很多时候都是以圆形(或带圆形边框的头像):

而源图像有正方形也有长方形,相对来说,正方形图像变成一个圆形要比长方形要容易地多,特别是希望图像正中心在圆心上。但对于长方形来说要难处理一点。在接下来的示例中,我们主要以长方形源图像为例,比如我们有一张像下面这样的图像:

使用border-radius实现圆形图像

制作圆形图像首先会想到border-radius,对于正方形的图像,在img自身上使用border-radius就能很好的实现圆形图像。

img {
    border-radius: 50%;
    width: 30vw;
}

从上图中我们可以发现img并不是正方形,这是图像源本来就不是一个正方形,img会按图像比例做自动缩放,具体的可以阅读《聊聊img元素》一文。

如果显式的给img设置widthheight属性值,有可能会给图像造成失真或扭曲,但我们可以使用object-fitobject-position来防止图像的失真,并且让图像中心原点在正中间:

img {
    border-radius: 50%;
    width: 30vmin;
    height: 30vmin;
    object-fit: cover;
    object-position: center;
}

在这种场景下要实现带有圆形边框的图像,可以直接使用border来实现:

有的开发者喜欢在<img>外面添加一个容器,通过图像的容器来控制正方形,并且在img上设置max-width: 100%按正方形的比例来实现圆形图像:

<!-- HTML -->
<div class="img__wrapper">
    <img src="https://www.w3cplus.com/sites/default/files/blogs/2020/2004/css-circle-image-2.jpg" alt="">
</div>

// CSS
.img__wrapper {
    width: 30vmin;
    height: 30vmin;
    border-radius: 50%;
    overflow: hidden;
}

img {
    max-width: 100%;
    height: auto;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
}
剩余80%内容付费后可查看

如需转载,烦请注明出处:https://www.w3cplus.com/css/css-circle-image.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部