CSS瀑布流实现

2024-09-03 01:12
文章标签 实现 css frontend 瀑布

本文主要是介绍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>

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

这篇关于CSS瀑布流实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131597

相关文章

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL