纯 CSS 简单实现图片自适应水平垂直居中

本方法适用图片尺寸不一,且需要根据页面大小实现自适应等比缩放的情况;
之前一直用的是背景图的方式来实现这个效果,可以这样做的一个弊端是不利于SEO 的优化,所以决定换种方式写,综合网上搜出来的文章,写了这个教程,供新手学习使用。
实现样式:

demo1
先上代码:
HTML结构
<div class="wide">
<div class="img-wrap">
<div>
<img src="./test_img.jpg" />
</div>
</div>
<p class="goods-name">商品名称</p>
</div>
CSS样式
.wide {
width: 60%;
height: auto;
margin: 0 auto;
border: 1px solid #f2f2f2;
}
.wide .goods-name {
width: 100%;
height: 28px;
font-size: 14px;
padding: 0 10px;
box-sizing: border-box;
background-color: #fff;
}
.img-wrap { /*重点从这里开始*/
width: 100%;
height: 0;
padding-bottom: 60%;
overflow: hidden;
position: relative;
background-color: lightgray;
}
.img-wrap > div {
width: 100%;
height: 100%;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
}
.img-wrap > div img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
}
简要说明:
1、.img-wrap 的 padding百分比值是相对于宽度的,这样我们就可以按照图片的比例来设置高度啦!height=0,padding-bottom=100% 正好是一个正方形(这里设置为60%);设置相对定位是为了 能够使子元素 基于它设置宽高(这样padding的值会计算在内,不然子元素的高度设置百分比时只会是我们写的‘height: 0’);
2、图片宽高 { width: auto; height: auto; max-width: 100%; max-height: 100%; } 这样图片可以自适应按父元素宽高等比例显示;
3、至此图片自适应就写好了,下面就是居中;
4、居中的方法很多;我这里用了flex布局,很容易就可以实现,如果要兼容IE和多版本浏览器请用其它居中方法实现;
补充:在设置图片时,可以把宽、高都设置成100%,然后使用CSS比较新的属性 object-fit 来实现图片按比例自适应居中显示。
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36