• CSS实现瀑布流布局


    一、通过Multi-columns相关的属性column-countcolumn-gap配合break-inside来实现瀑布流布局

    HTML

    <div class="masonry">
        <div class="item" style="height: 50px;">1</div>
        <div class="item" style="height: 100px;">2</div>
        <div class="item" style="height: 150px;">3</div>
        <div class="item" style="height: 130px;">4</div>
        <div class="item" style="height: 210px;">5</div>
        <div class="item" style="height: 170px;">6</div>
        <div class="item" style="height: 60px;">7</div>
        <div class="item" style="height: 150px;">8</div>
        <div class="item" style="height: 80px;">9</div>
        <div class="item" style="height: 140px;">10</div>
        <div class="item" style="height: 100px;">11</div>
        <div class="item" style="height: 140px;">12</div>
        <div class="item" style="height: 130px;">13</div>
        <div class="item" style="height: 80px;">14</div>
        <div class="item" style="height: 120px;">15</div>
    </div>

    CSS

    .masonry-column {
      column-count: 3;
      column-gap: 5px;
    
      .item {
        break-inside: avoid;
        box-sizing: border-box;
        border: 1px solid brown;
        margin-bottom: 7px;
        background-color: wheat;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 50px;
        font-weight: bold;
        color: brown;
      }
    }
    

      

     二、通过FlexBox布局(需要强制设置height: 100vh;)

    HTML

    <div class="masonry-flex">
      <div class="item" style="height: 140px"></div>
      <div class="item" style="height: 190px"></div>
      <div class="item" style="height: 170px"></div>
      <div class="item" style="height: 120px"></div>
      <div class="item" style="height: 160px"></div>
      <div class="item" style="height: 180px"></div>
      <div class="item" style="height: 140px"></div>
      <div class="item" style="height: 150px"></div>
      <div class="item" style="height: 170px"></div>
      <div class="item" style="height: 170px"></div>
      <div class="item" style="height: 140px"></div>
      <div class="item" style="height: 190px"></div>
      <div class="item" style="height: 170px"></div>
      <div class="item" style="height: 120px"></div>
      <div class="item" style="height: 160px"></div>
      <div class="item" style="height: 180px"></div>
      <div class="item" style="height: 140px"></div>
      <div class="item" style="height: 150px"></div>
      <div class="item" style="height: 170px"></div>
      <div class="item" style="height: 170px"></div>
      <span class="item break"></span>
      <span class="item break"></span>
      <span class="item break"></span>
    </div>
    

    CSS

    .masonry-flex {
      display: flex;
      flex-flow: column wrap;
      align-content: space-between;
      /* 容器必须有固定高度
       * 且高度大于最高的列高 */
      height: 1920px;
      /* 非必须 */
      background-color: #f7f7f7;
      border-radius: 3px;
      padding: 20px;
       100%;
      margin: 0 auto;
      counter-reset: items;
    }
    
    .item {
       20%;
      /* 非必须 */
      position: relative;
      margin-bottom: 2%;
      border-radius: 3px;
      background-color: #a1cbfa;
      border: 1px solid #4290e2;
      box-shadow: 0 2px 2px rgba(0,90,250,0.05),
        0 4px 4px rgba(0,90,250,0.05),
        0 8px 8px rgba(0,90,250,0.05),
        0 16px 16px rgba(0,90,250,0.05);
      color: #fff;
      padding: 15px;
      box-sizing: border-box;
    }
    
     /* 仅用于打印数字 */
    div.item::before {
      counter-increment: items;
      content: counter(items);
    }
    
    /* 将内容块重排为4列 */
    .item:nth-of-type(4n+1) { order: 1; }
    .item:nth-of-type(4n+2) { order: 2; }
    .item:nth-of-type(4n+3) { order: 3; }
    .item:nth-of-type(4n)   { order: 4; }
    
    /* 强制换列 */
    .break {
      flex-basis: 100%;
       0;
      border: 1px solid #ddd;
      margin: 0;
      content: "";
      padding: 0;
    } 

     原文章:https://jessieji.com/2019/pure-css-masonry

      

  • 相关阅读:
    PHP如何解决网站大流量与高并发的问题
    HTML CSS 特殊字符表
    PHP 把返回的数据集转换成Tree树
    网页加载时域名加载数量限制
    关于浮点型误差的解决方法
    MVC三层架构
    MyBatis
    plsql储存过程
    游标和触发器
    使用plsql编程
  • 原文地址:https://www.cnblogs.com/peter-web/p/15016011.html
Copyright © 2020-2023  润新知