• css实现朋友圈照片排列布局


    纯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{
      width32%
      height100px;
      margin-top5px;
    }
    .list:not(:nth-child(3n)) {
      margin-right: 2%;
    }

     

    2、对于只有一张图片情况,只需用css选择器判断为一张图片时,改变图片大小即可;

    选择器逻辑:元素为 倒数第一个元素  && 第一个元素 时,则可判断只有一个元素:对其样式单独设置覆盖原样式即可

    ul linth-last-child(1): first-child{
      width200px;
      height200px;
    }

     

    3、对于四张图片的情况时,图片需呈 两行两列布局:这里就需对此种情况下的第二张图片添加margin-right实现三列变两列:

    选择器逻辑: 元素为 倒数第4个 &&  第一个的元素 时, 判断为共有四个元素,
    再选择 其后的 同级元素 的第 2n 个后添加margin-right属性;

    ul linth-last-child(4): first-child ~ linth-child(2n){
      margin-right32%;
    }

     再次之前需对第三个元素恢复间隔,或同朋友圈类似,四张照片是不显示间隔,如有需求也可设置其他属性,如下:(此属性需在上一条属性之前)

    ul linth-last-child(4): first-child , ul linth-last-child(4): first-child ~ li{
      width: 50%;
    margin-right: 0;
    }
  • 相关阅读:
    【MySQL】MySQL主从库配置和主库宕机解决方案
    【MySQL】局域网内:在一台电脑访问另一台电脑的mysql数据库
    【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作
    【转载】Mysql主从复制、和MySQL集群(主主复制)
    (转载)【TP5.0】设置session有效时长+修改默认存储路径
    【php+js】用PHP或者JS怎么显示搜索到的关键字高亮,及其文章里包含关键字的一小段
    【Mysql】php执行脚本进行mysql数据库 备份和还原
    【jquery】ajax 动态 改变 select下拉框选中的值
    【TP5.0】model的操作方法
    【php导出pdf文件】php将html 导出成pdf文件(MPDF60),支持完美分页,注意是完美!!
  • 原文地址:https://www.cnblogs.com/pangys/p/13080018.html
Copyright © 2020-2023  润新知