当前位置: 首页 > news >正文

CSS瀑布流实现

文章目录

    • 前言
      • 前置知识
    • React 中实现
      • 代码实现
    • Vue 中实现
      • 代码实现

前言

瀑布流是一种CSS布局技术,它允许不同高度的元素在页面上以美观的方式排列,同时保持行与列间的间距一致。

前置知识

  1. 使用 multi-column 实现多列布局
  • column-count: 设置布局显示的列数。
  • column-gap: 定义列与列之间的间距。
  • column-rule: 设置列与列之间的边框样式。
  • column-fill: 控制如何填充列,当内容高度不均时是否平衡各列的高度。
  1. break-inside 属性

该属性用于控制块级元素的内容是否可以在其内部断开:

  • auto: 默认值,允许内容在元素内部正常断开。
  • avoid: 尝试避免在元素内部断开。如果内容过大而无法适应当前容器,则可能会导致溢出,而不是断开。
  • avoid-page: 在打印或分页媒体中,避免在元素内部开始新的页面。

React 中实现

代码实现

import { useState } from "react";
import less from "./index.module.css";const Falls = () => {const [data] = useState(["紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬","飞向 避风的海港避风的海港避风的海港避风的海港避风的海港避风的海港避风的海港","摇曳 一湾水温柔","全是 最爱坚守","纯真 是你的微笑是你的微笑是你的微笑是你的微笑是你的微笑是你的微笑","一眼到永远的抱抱","爱像 亲恩般深长",]);return (<div className={less.page}><div className={less.card_container}>{data.map((item) => (<div key={item} className={less.card_item}>{/* 需要显示的内容 */}{item}</div>))}</div></div>);
};export default Falls;
.page {width: 100vw;min-height: 100vh;overflow: hidden;padding: 10px 16px;box-sizing: border-box;
}.card_container {column-count: 2; column-gap: 15px; 
}.card_item {break-inside: avoid; margin-bottom: 15px;padding: 10px;box-sizing: border-box;border: 1px solid #9999994e;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

效果展示
在这里插入图片描述

Vue 中实现

代码实现

<template><div class="page"><div class="card-container"><div class="card-item" v-for="item in data" :key="item">{{ item }}</div></div></div>
</template><script setup>const data = ["紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬紫荆花飘扬", "飞向 避风的海港避风的海港避风的海港避风的海港避风的海港避风的海港避风的海港", "摇曳 一湾水温柔", "全是 最爱坚守", "纯真 是你的微笑是你的微笑是你的微笑是你的微笑是你的微笑是你的微笑", "一眼到永远的抱抱", "爱像 亲恩般深长"]</script><style lang="scss" scoped>
.page {width: 100vw;min-height: 100vh;overflow: hidden;padding: 10px 16px;box-sizing: border-box;.card-container {column-count: 2; // 定义2列column-gap: 15px; // 列与列的距离为20px.card-item {break-inside: avoid; // 指定元素不被截断margin-bottom: 15px;padding: 10px;box-sizing: border-box;border: 1px solid #9999994e;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}}
}
</style>

效果展示
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机视觉之 GSoP 注意力模块
  • FastGPT:利用大模型重新定义传统知识库
  • 2024最新VMware17安装Windows10详细记录
  • golang make 函数的三个参数分别有什么作用
  • 新华三H3C HCL配置IS-IS基本配置
  • 【人工智能 | 机器学习】神经网络
  • Java算法之循环排序(Cyclic Sort)
  • 【Xcode】Xcode基本使用指引
  • java项目运行时提示process finished with exit code 1;只显示错误代码,没有显示具体错误信息;解决方案
  • 《工程机械》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 在ubuntu系统上使用Hadoop搭建集群
  • 向量数据库Faiss的搭建与使用
  • vivado 定义时间约束
  • 七,Spring Boot 当中的 yaml 语法使用
  • 虚幻地形高度图生成及测试
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • CEF与代理
  • oschina
  • PV统计优化设计
  • Python连接Oracle
  • React-生命周期杂记
  • SwizzleMethod 黑魔法
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 入门级的git使用指北
  • 通信类
  • 限制Java线程池运行线程以及等待线程数量的策略
  • ​ArcGIS Pro 如何批量删除字段
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (4)logging(日志模块)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)二分查找 超详细
  • (solr系列:一)使用tomcat部署solr服务
  • (zt)最盛行的警世狂言(爆笑)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (第30天)二叉树阶段总结
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (七)理解angular中的module和injector,即依赖注入
  • (十三)Flask之特殊装饰器详解
  • (转)scrum常见工具列表
  • .bat文件调用java类的main方法
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net 路由处理厉害了
  • .net(C#)中String.Format如何使用
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @ModelAttribute使用详解
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [CF226E]Noble Knight's Path
  • [CP_AUTOSAR]_系统服务_DEM模块(一)功能及模块间依赖关系介绍
  • [C语言]——柔性数组
  • [EFI]英特尔 冥王峡谷 NUC8i7HVK 电脑 Hackintosh 黑苹果efi引导文件
  • [FPGA]-时序传输模型分析