首页 > 其他分享 >CSS瀑布流实现

CSS瀑布流实现

时间:2024-09-02 22:53:25浏览次数:13  
标签:box 海港 飘扬 紫荆花 实现 column 避风 瀑布 CSS

文章目录

前言

瀑布流是一种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>

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

标签:box,海港,飘扬,紫荆花,实现,column,避风,瀑布,CSS
From: https://blog.csdn.net/cx18333/article/details/141832407

相关文章

  • 对Xcode Tools实现机制的一点思考
    场景在编译wine前,执行.configure检查依赖项是否都满足条件,发现bison的版本较低。检查发现存在一个/usr/bin/bison,但是从未安装过这一命令,所以考虑到是XTools中携带的,检查后发现确实如此然后就又一次引发了我对于XTool的疑问,/usr/bin/下和XTools中包含的相同可执行程序,不是以软连......
  • 基于django+vue学院党建工作管理系统设计与实现【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高校党建工作的日益重要,传统的手工管理模式已难以满足当前学院党建工作的复杂性和高效性需求。学院党建工作作为......
  • Java学习案例:控制台实现电影院管理系统
    文章目录@[TOC](文章目录)前言一、实现效果1、登录界面以及注册功能演示2、普通用户登录(1)热映影片(2)即将上映(3)个人信息(4)票夹3、管理员登录(1)电影管理(2)用户管理(3)个人信息二、功能源码1、接收用户的合法输入2、控制台格式化输出3、创建工具类4、多个类之间数据传递三......
  • Python 实现行为驱动开发 (BDD) 自动化测试详解
    什么是BDD?行为驱动开发(BDD,Behavior-DrivenDevelopment)是一种软件开发过程,旨在通过鼓励协作和沟通,提高软件质量。BDD的核心理念是用自然语言描述软件的行为,使得业务人员、开发人员和测试人员都能参与其中。BDD是由测试驱动开发(TDD,Test-DrivenDevelopment)演......
  • C++STL之list容器:基本使用及模拟实现
    目录有了vector,为何还需listlist的使用1,push_back、push_front、pop_back、pop_front的使用2,正向、反向、const正向、const反向迭代器的使用正向、反向迭代器的使用const正向、const反向迭代器的使用3,operator=赋值4,insert、erase任意位置的插入、删除5,迭代器失效(......
  • SpringBoot实现前后端传输加密设计
    在Web应用中,确保前后端之间的数据传输安全是非常重要的。这通常涉及到使用HTTPS协议、数据加密、令牌验证等安全措施。本文通过将前后端之间的传输数据进行加密,用于在SpringBoot应用中实现前后端传输加密设计。一、数据加密方案即使使用了HTTPS,也可能需要在应用层对数据......
  • 分组密码的模式AES-CBC模式流程解析附:应用代码实现
    CBC模式:CipherBlockChainingmode(密码分组链接模式)CBC模式的加解密CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。密文分组像链条一样相互连接在一起。CBC模式的加密流程图CBC模式的解密流程图将一个分组的加密过程分离出来,对ECB模式和CBC......
  • 前端实现图片压缩(干货总结)
    ⚠️⚠️文前推荐一下......
  • 前端实现图片压缩(干货总结)
    前端实现图片压缩方案总结前文提要1.使用HTML5的`<canvas>`元素步骤概述:示例代码:2.利用第三方库(推荐)使用image-magic-adapter示例:3.gif图片压缩(拓展)node压缩gif实现如下:注意事项⚠️⚠️文前推荐一下......
  • LRU和LFU的实现及优缺点
    计算机内部有很多使用缓存的地方,缓存能够保证系统的快速运转。但是一个缓存组件是否好用,取决于它的缓存命中率,而命中率又和缓存组件自己的缓存数据淘汰算法息息相关。常用的缓存算法有:FIFO、LRU、LFU。FIFO先进先出算法FIFO(FirstInFirstOut)的基本思想是:选择最早调入内存......