CSS实现瀑布流的两种方式

 4027

瀑布流又称瀑布流式布局,是比较流行的一种网站页面布局方式。在手机端进行多图片展示时会经常用到。即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。

那么瀑布流式布局有哪些实现方式呢?

column 多行布局实现瀑布流

column 实现瀑布流主要依赖两个属性。

column-count 属性,是控制屏幕分为多少列。

column-gap 属性,是控制列与列之间的距离。


  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.   <title>瀑布流布局-column</title>
  8.   <style>
  9.     .box {
  10.           margin: 10px;
  11.           column-count: 3;
  12.           column-gap: 10px;
  13.       }
  14.       .item {
  15.           margin-bottom: 10px;
  16.       }
  17.       .item img{
  18.           width: 100%;
  19.           height:100%;
  20.       }
  21.   </style>
  22. </head>
  23. <body>
  24.   <div>
  25.     <div>
  26.       <img  src="./imgs/1.jpg" alt="1" />
  27.     </div>
  28.     <div>
  29.       <img  src="./imgs/2.jpg" alt="2" />
  30.     </div>
  31.     <div>
  32.       <img  src="./imgs/3.jpg" alt="3" />
  33.     </div>
  34.     <div>
  35.       <img  src="./imgs/1.jpg" alt="1" />
  36.     </div>
  37.     <div>
  38.       <img  src="./imgs/2.jpg" alt="2" />
  39.     </div>
  40.     <div>
  41.       <img  src="./imgs/3.jpg" alt="3" />
  42.     </div>
  43.     <div>
  44.       <img  src="./imgs/1.jpg" alt="1" />
  45.     </div>
  46.     <div>
  47.       <img  src="./imgs/2.jpg" alt="2" />
  48.     </div>
  49.     <div>
  50.       <img  src="./imgs/3.jpg" alt="3" />
  51.     </div>
  52.     <div>
  53.       <img  src="./imgs/1.jpg" alt="1" />
  54.     </div>
  55.     <div>
  56.       <img  src="./imgs/2.jpg" alt="2" />
  57.     </div>
  58.     <div>
  59.       <img  src="./imgs/3.jpg" alt="3" />
  60.     </div>
  61.     <div>
  62.       <img  src="./imgs/1.jpg" alt="1" />
  63.     </div>
  64.     <div>
  65.       <img  src="./imgs/2.jpg" alt="2" />
  66.     </div>
  67.     <div>
  68.       <img  src="./imgs/3.jpg" alt="3" />
  69.     </div>
  70.     <div>
  71.       <img  src="./imgs/1.jpg" alt="1" />
  72.     </div>
  73.     <div>
  74.       <img  src="./imgs/2.jpg" alt="2" />
  75.     </div>
  76.     <div>
  77.       <img  src="./imgs/3.jpg" alt="3" />
  78.     </div>
  79.     <div>
  80.       <img  src="./imgs/1.jpg" alt="1" />
  81.     </div>
  82.     <div>
  83.       <img  src="./imgs/2.jpg" alt="2" />
  84.     </div>
  85.     <div>
  86.       <img  src="./imgs/3.jpg" alt="3" />
  87.     </div>
  88.     <div>
  89.       <img  src="./imgs/1.jpg" alt="1" />
  90.     </div>
  91.     <div>
  92.       <img  src="./imgs/2.jpg" alt="2" />
  93.     </div>
  94.     <div>
  95.       <img  src="./imgs/3.jpg" alt="3" />
  96.     </div>
  97.   </div>
  98. </body>
  99. </html>

展示效果如下

CSS实现瀑布流的两种方式

flex 弹性布局实现瀑布流

flex 实现瀑布流需要将最外层元素设置为 display: flex,使用弹性布局

flex-flow:column wrap 使其纵向排列并且换行换行

设置 height: 100vh 填充屏幕的高度,也可以设置为单位为 px 的高度,来容纳子元素。

每一列的宽度可用 calc 函数来设置,即 width: calc(100%/3 - 20px)。分成等宽的 3 列减掉左右两遍的 margin 距离。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.   <title>瀑布流布局-flex</title>
  8.   <style>
  9.     .box {
  10.         display: flex;  
  11.         flex-flow: column wrap;
  12.         height: 100vh;
  13.       }
  14.       .item {
  15.         margin: 10px;
  16.         width: calc(100%/3 - 20px);
  17.       }
  18.       .item img{
  19.         width: 100%;
  20.         height:100%;
  21.       }
  22.   </style>
  23. </head>
  24. <body>
  25.   <div>
  26.     <div>
  27.       <img  src="./imgs/1.jpg" alt="1" />
  28.     </div>
  29.     <div>
  30.       <img  src="./imgs/2.jpg" alt="2" />
  31.     </div>
  32.     <div>
  33.       <img  src="./imgs/3.jpg" alt="3" />
  34.     </div>
  35.     <div>
  36.       <img  src="./imgs/1.jpg" alt="1" />
  37.     </div>
  38.     <div>
  39.       <img  src="./imgs/2.jpg" alt="2" />
  40.     </div>
  41.     <div>
  42.       <img  src="./imgs/3.jpg" alt="3" />
  43.     </div>
  44.     <div>
  45.       <img  src="./imgs/1.jpg" alt="1" />
  46.     </div>
  47.     <div>
  48.       <img  src="./imgs/2.jpg" alt="2" />
  49.     </div>
  50.     <div>
  51.       <img  src="./imgs/3.jpg" alt="3" />
  52.     </div>
  53.     <div>
  54.       <img  src="./imgs/1.jpg" alt="1" />
  55.     </div>
  56.     <div>
  57.       <img  src="./imgs/2.jpg" alt="2" />
  58.     </div>
  59.     <div>
  60.       <img  src="./imgs/3.jpg" alt="3" />
  61.     </div>
  62.     <div>
  63.       <img  src="./imgs/1.jpg" alt="1" />
  64.     </div>
  65.   </div>
  66. </body>
  67. </html>

展示效果如下

CSS实现瀑布流的两种方式


原文地址:https://juejin.cn/post/7011333433318178846

作者:tangxd3


TAG标签:
本文网址:https://www.zztuku.com/detail-9386.html
站长图库 - CSS实现瀑布流的两种方式
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐