css实现瀑布流

14 篇文章 0 订阅

一行代码实现瀑布流

css 的 column-count 属性,将一个盒子分成 x 列,例如 column-count: 2; ,就是将一个div分成 2 列

但是排列不是按照数组顺序排序,因为分成2列后是按照顺序从上往下排列,会自动计算,第一列按照数组顺序渲染完才接着渲染第二列,无关紧要

<template>
  <div id="demoBox">
    <div class="pbl_box">
      <div class="pbl_box_info" v-for="(v, i) in shopList" :key="i">
        <img :src="v.thumbURL" alt="" />
      </div>
    </div>
  </div>
</template>
<script>
export default {
	name: 'demoBox',
	data() {
		return {
			shopList: [] // 数据在下方
		}
	}
}
</script>
<style lang="scss" scoped>
#demoBox {
  width: 100%;
  height: auto;
  background: #F0F1F3;;
  overflow-y: auto;
  position: relative;
  
  .pbl_box {
    column-count: 2;
    padding: 10px;
    
    .pbl_box_info {
      break-inside: avoid;
      box-sizing: border-box;
      margin-bottom: 10px;
      img {
        display: block;
        width: 100%;
      }
    }
  }
}
</style>

其中 .pbl_box_info 中的 break-inside: avoid; 用来避免在元素内部断行并产生新列

页面效果
在这里插入图片描述

列之间的距离可以改变

column-gap: 10px;

每两列之间还可以增加分割线,并设置分割线的宽度,样式,颜色

column-rule : width style color;

column-count 改成 3 之后效果
在这里插入图片描述

下面是列表数据,直接获取的百度图片列表

export default [
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=25462226,492036088&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3934091791,2495552608&fm=11&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3022418489,1511668722&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3227807662,3599349607&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1731472669,4215674773&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3529867560,1288932876&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=160455671,2126788169&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3544005106,2960177055&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1773247512,1544055606&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3331240902,302148632&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2455861341,3099849653&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2797486824,1669366989&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2892951871,781641693&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3418866984,2025474024&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1929504862,3503507339&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=1002782512,2142316990&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1771748565,2329834238&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=12680769,758549795&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3013132257,1510003281&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2542227489,666962888&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=592587056,1604436738&fm=11&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2049221826,3660697758&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2814453002,2863530653&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1386207003,2280600453&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1291872971,3064067380&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3527704549,3929081328&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2460933666,3793613644&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1320272459,772040234&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=328389424,2589490932&fm=26&gp=0.jpg"
  },
  {
    thumbURL:
      "https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1659438510,1718529823&fm=26&gp=0.jpg"
  }
];

Tailwind CSS是一个流行的开源CSS框架,它提供了一系列预定义的类,可以帮助开发者快速地构建美观、响应式的Web界面,而无需编写大量的CSS代码。它强调原子样式和实用主义,让你能够轻松地控制元素的样式,比如布局、颜色、间距等。 对于实现瀑布流布局(也称为 Masonry 或 Masonry Grid),Tailwind CSS本身并不直接提供现成的解决方案,但你可以结合其基础工具和一些自定义样式来实现。以下是一个简单的步骤: 1. 设置容器宽度和列数:使用`max-w-screen-6xl`设置容器的最大宽度,然后使用`grid-cols`来设置列数,如`grid-cols-[1fr, 2fr, 1fr]`表示每行可以有1个、2个或1个单位的宽度。 2. 自适应列高度:为了创建瀑布流效果,你需要动态调整每个网格单元的高度。这通常通过JavaScript库如`masonry-layout`来实现,或者你可以使用CSS Grid的`auto-fit`或`minmax()`方法。 3. 使内容可滚动:如果内容超过容器,添加`overflow-x: auto`或`overflow-y: auto`以实现水平或垂直滚动。 4. 使用`gap`和`justify-content`调整间距:Tailwind的`gap`属性用于控制网格单元之间的空白,`justify-content`用于设置行内的对齐方式。 以下是一个简单的示例代码片段: ```html <div class="container mx-auto max-w-screen-6xl overflow-x-auto grid grid-cols-[1fr, 2fr, 1fr] gap-4"> <!-- 将内容的div替换为实际的HTML --> <div class="bg-white p-6">...</div> ... </div> ``` 为了瀑布流布局,还需要配合JavaScript或者使用库(如Masonry.js),但基础的CSS部分已经展示。如果你需要更详细的指导,可以在使用过程中查阅相关教程或文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值