一般的社交项目都会有图片功能,特别是多图的情况下,九张图布局最常见也用的最多的就是[九宫格]^(CELL)布局了,但是在前端写代码的时候就很麻烦了,因为你不知道客户选择的图片是多大还是多小的情况下,你是不可以设置高度,这样的设置会导致拉伸图片,变形。所以我们需要换一种思路来做,利用css的 background-image 属性来完成下面的步骤。
这样的好处 :

可以自适应图片的宽高
可以设置图片显示的区域,是显示中间部分或者图片上面或者下部分
不需要 img 标签即可完成代码
废话不多说看下代码


<div class="wrapper clearfix">
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
    <div class="list"></div>
</div>

先写好布局骨架代码,接下来写上css


.wrapper {
    margin: 0 auto;
    width: 100%;
    max-width: 380px;
    user-select: none;
    margin-left: -4px;
}
.wrapper.clearfix:after {  /* 去除浮动 */
    clear: both; 
    content: "."; 
    display: block;
    height: 0; 
    visibility: hidden;
}
.wrapper.clearfix {
    zoom:1;
}
.list {
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 0 12px rgba(0, 0, 0, 0.05);
    position: relative;
     float: left;
    width: calc(33.333333% - 4px);
    padding-top: calc(33.333333% - 4px);
    margin-left: 4px;
        background-image: url('你自己的图片地址')
}
.list:not(:last-child) {
    margin-bottom: 4px;
}

这样的你图片不管怎么做都是正方行,利用 padding-top 属性设置一样的高度,一气呵成。