问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用css3的 clomus 布局 怎么写瀑布流

发布网友 发布时间:2022-04-21 18:59

我来回答

2个回答

懂视网 时间:2022-04-06 14:52

瀑布流的布局感觉还是蛮不错的,所以本篇文章就给大家来分享一下css实现瀑布流布局的两种方法,通过multi-column多列布局实现瀑布流和flex布局实现瀑布流。

1.multi-column多列布局实现瀑布流

先简单的讲下multi-column相关的部分属性

  • column-count设置列数

  • column-gap设置列与列之间的间距

  • column-width设置每列的宽度

  • 还要结合在子容器中设置break-inside防止多列布局,分页媒体和多区域上下文中的意外中断

    break-inside属性值
     auto 指定既不强制也不禁止元素内的页/列中断。
     avoid 指定避免元素内的分页符。
     avoid-page 指定避免元素内的分页符。
     avoid-column 指定避免元素内的列中断。
     avoid-region 指定避免元素内的区域中断。
  • 截取了部分,可自己填充

  • /* html文件 */
    <!-- 使用multi-columns实现瀑布流 -->
    <div id="root">
     <div class="item">
     <img class="itemImg" src="../images/1.jpeg" alt=""/>
     <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
     </div>
     </div>
     <div class="item">
     <img class="itemImg" src="../images/2.jpg" alt=""/>
     <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
     </div>
     </div>
     <div class="item">
     <img class="itemImg" src="../images/3.jpg" alt=""/>
     <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
     </div>
     </div>
     <div class="item">
     <img class="itemImg" src="../images/4.jpg" alt=""/>
     <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
     </div>
     </div>
     <div class="item">
     <img class="itemImg" src="../images/5.jpeg" alt=""/>
     <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
     </div>
     </div>
    </div>
    /* css样式 */
    body {
     background: #e5e5e5;
    }
    /* 瀑布流最外层 */
    #root {
     margin: 0 auto;
     width: 1200px;
     column-count: 5;
     column-width: 240px;
     column-gap: 20px;
    }
    /* 每一列图片包含层 */
    .item {
     margin-bottom: 10px;
     /* 防止多列布局,分页媒体和多区域上下文中的意外中断 */
     break-inside: avoid;
     background: #fff;
    }
    .item:hover {
     box-shadow: 2px 2px 2px rgba(0, 0, 0, .5);
    }
    /* 图片 */
    .itemImg {
     width: 100%;
     vertical-align: middle;
    }
    /* 图片下的信息包含层 */
    .userInfo {
     padding: 5px 10px;
    }
    .avatar {
     vertical-align: middle;
     width: 30px;
     height: 30px;
     border-radius: 50%;
    }
    .username {
     margin-left: 5px;
     text-shadow: 2px 2px 2px rgba(0, 0, 0, .3);
    }

    1033747325-5b8d422c45d79_articlex.png

    (瀑布流布局效果图1)

    4047664043-5b8d42dfbc9fe_articlex.png

    2.flex布局实现瀑布流

  • 将外层设置为row布局,然后再设置一个容器并设置为column布局,它是将列作为一个整体,然后在对列进行划分,在列里进行宽固定来实现的

  • /* html文件(只截取两列布局)*/
    <div id="root">
     <div class="itemContainer">
     <div class="item">
      <img class="itemImg" src="../images/1.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/2.jpg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/3.jpg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/4.jpg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/5.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/6.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/7.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     </div>
     <div class="itemContainer">
     <div class="item">
      <img class="itemImg" src="../images/5.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/7.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/6.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/5.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/6.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     <div class="item">
      <img class="itemImg" src="../images/6.jpeg" alt=""/>
      <div class="userInfo">
      <img class="avatar" src="../images/gift.png" alt=""/>
      <span class="username">牵起你的左手护着你</span>
      </div>
     </div>
     </div>
    </div>
    /* css文件 */
    body{
     background: #e5e5e5;
    }
    #root{
     display: flex;
     flex-direction: row;
     margin: 0 auto;
     width: 1200px;
    }
    .itemContainer{
     margin-right: 10px;
     flex-direction: column;
     width: 240px;
    }
    .item{
     margin-bottom: 10px;
     background: #fff;
    }
    .itemImg{
     width: 100%;
    }
    .userInfo {
     padding: 5px 10px;
    }
    .avatar {
     vertical-align: middle;
     width: 30px;
     height: 30px;
     border-radius: 50%;
    }
    .username {
     margin-left: 5px;
     text-shadow: 2px 2px 2px rgba(0, 0, 0, .3);
    }

    126657394-5b8d4421666ef_articlex.png

    (瀑布流布局效果图2)

    实践后发现,纯css实现的瀑布流只能是一列一列的排布,所以还是得用js来实现瀑布流布局更符合我们常见的瀑布流

    热心网友 时间:2022-04-06 12:00

    首先,css3的布局主要用到下面三个属性

    column-count

    column-gap

    column-rule

    其次,在兼容column的浏览器中可以实现瀑布流,代码如下

    .demo{
        width: 500px;
        height: auto;

        -webkit-column-count:3;
        -moz-column-count:3;
        column-count:3;

        -webkit-column-gap:10px;
        -moz-column-gap:10px;
        column-gap:10px;

        column-rule:3px outset #ff0000;

        border: 1px solid #ddd;
    }
    .demo div{
        background: #336699;
        margin-bottom: 4px;
        color: #eee;
        padding: 10px;
    }

    <div class="demo">
            <div>1这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>2这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>3这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>4这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>5这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>6这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>7这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>8这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>9这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>11这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>12这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>13这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>14这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>15这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>16这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>17这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>18这是测试用的文字,测试能不能实现瀑布流。</div>
            <div>19这是测试用的文字,测试能不能实现瀑布流。</div>
        </div>
    </div>

    追问可以实现瀑布流效果么?把JS部分也给补上呗😁😁😁

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 column-count怎么支持ie8 excel中listbox最多可以显示几列?就是listbox1.co... css 瀑布流布局问题 高手进 怎样在网页中做出瀑布流效果? 请教Grid的fixed-column-count属性问题 父元素:column-count:2 里面的元素 margin-top火... html中Column-count属性遇到的问题。求解达 如何使用CSS3 column-count 属性 华为手机p20怎么设置 华为手机p20怎么设置 华为p20怎么关闭推送 华为p20怎么关闭推送 华为p20如何停用谷歌 华为p20如何停用谷歌 华为p20怎样关闭呼叫 怎么关闭华为p20手机您正在同时使用WiFi和流量? 华为p20怎么关掉应用 华为p20手机如何关闭 华为p20健康使用手机怎么关闭? 华为p20手机怎么关闭 thisform.grid1.columncount=-1这句是什么意思 数据库中Count是什么意思和SUM有什么区别 sql 语句中count函数怎么用?? css3 column-rule怎么设虚线 SAP ABAP,选项卡控件中有个表格控件,表格控件能... sql中count是什么含义 python关于输出文档的情况 怎么获取表的字段名?jdbc问题 有人知道Java里面对JTable怎么删除一列吗,给我一... VFP中如何用列表框显示一个二维数组的各个元素的值? 在发微信句子时会显示有人@我这几个字是怎么弄的 为什么删除微信好友他又出现在对话框里,并且还会... 在微信新的朋友中出现某人请求添加你为好友的消息,... 微信里的文章@某人看,其他人都能看见吗? 微信上不知道为什么突然出现了添加对方为好友的对... 苹果手机怎么恢复信息删除信息 我刚删除了一个好友,怎么马上系统跳出来添加的信息... iphone误删的短信怎么恢复 请问我把一个人的微信删了,怎么在微信搜索那个人... 微信怎么样删除 1显示添加 2显示你不是对方好友?