css实现朋友圈照⽚排列布局的代码⾸先可以打开朋友圈观察不同图⽚数量的⼏种布局,也可参考下图⽰例;
可以发现除1张图⽚,4张图⽚特殊外,其他数量图⽚均使⽤⼀⾏三列的⽅式排列;
假设有如下HTML代码,这⾥imgList是⼀个图⽚地址数组;
<ul>
<li v-for="(item, index) in imgList" :key=index >
<img :src="item">
</li>
</ul>
1、⾸先我们使⽤flex实现正常的三列布局:
设置为换⾏,每个元素占1/3或指定宽度,除每⾏最后⼀个元素(3n)都设置margin-right并通过预留间隔;
ul{
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
li{
width: 32%;
height: 100px;
margin-top: 5px;
}
.list:not(:nth-child(3n)) {
margin-right: 2%;
}
2、对于只有⼀张图⽚情况,只需⽤css选择器判断为⼀张图⽚时,改变图⽚⼤⼩即可;
选择器逻辑:元素为倒数第⼀个元素 && 第⼀个元素时,则可判断只有⼀个元素:对其样式单独设置覆盖原样式即可
ul li: nth-last-child(1): first-child{
width: 200px;
height: 200px;
}
3、对于四张图⽚的情况时,图⽚需呈两⾏两列布局:这⾥就需对此种情况下的第⼆张图⽚添加margin-right实现三列变两列:
选择器逻辑:元素为倒数第4个 && 第⼀个的元素时,判断为共有四个元素,
再选择其后的同级元素的第 2n 个后添加margin-right属性;
ul li: nth-last-child(4): first-child ~ li: nth-child(2n){
margin-right: 32%;
}
再次之前需对第三个元素恢复间隔,或同朋友圈类似,四张照⽚是不显⽰间隔,如有需求也可设置其他属性,如下:(此属性需在上⼀条属性之前)
ul li: nth-last-child(4): first-child , ul li: nth-last-child(4): first-child ~ li{
width: 50%;
css实现三列布局margin-right: 0;
}
总结
到此这篇关于css实现朋友圈照⽚排列布局的⽂章就介绍到这了,更多相关css 图⽚排列布局内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章,希望⼤家以后多多⽀持!