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

uniapp瀑布流布局写法

首先我们要清楚瀑布流是什么?

瀑布流布局(Waterfall Flow Layout),也称为瀑布流式布局,是一种常见的网页或移动应用布局方式,特点是元素以不规则的方式排列,就像瀑布中的流水一样,每个元素的高度可以不同。

主要特点和优点包括:

  1. 不规则的排列:瀑布流布局允许元素以不同的高度和宽度排列,因此适用于展示不同尺寸和形状的内容,如图片、卡片、商品等。

  2. 动态加载:可以通过滚动加载或异步加载来动态添加新的元素,以实现无限滚动效果,提高用户体验。

  3. 最大化利用空间:瀑布流布局可以更好地利用可用空间,因为元素会根据其实际高度自动填充空白区域,减少了页面空白和浪费。

  4. 适应性:适用于不同屏幕大小和设备类型,可以实现响应式布局,适应各种屏幕分辨率。

  5. 视觉吸引力:瀑布流布局在设计上常常呈现出视觉上的吸引力,因为元素的不规则排列可以创造出有趣的视觉效果。

mode="widthFix"什么意思?

当你设置一个图片的 mode 属性为 "widthFix" 时,图片的宽度将会被拉伸或缩小以适应容器的宽度,同时保持图片的原始宽高比例。这意味着图片的高度会根据宽度自动调整,以确保图片不会变形,并且整个图片都能在容器内显示,而不会超出容器或留有空白。

存html和css生成,javascript中仅仅只是用于渲染的假数据。

用于渲染的假数据

      itemList: [{imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',title: '我是标题1',content: '我是内容1',},{imageSrc: 'https://pic.imgdb.cn/item/650850d7204c2e34d3a984ca.jpg',title: '我是标题2',content: '我是内容2',},{imageSrc: 'https://pic.imgdb.cn/item/64eee7e1661c6c8e54a86a07.jpg',title: '我是标题3',content: '我是内容3',},{imageSrc: 'https://pic.imgdb.cn/item/65085109204c2e34d3a9933c.jpg',title: '我是标题4',content: '我是内容4',},{imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',title: '我是标题5',content: '我是内容5',},],

css样式部分

.content {padding: 30rpx;box-sizing: border-box;column-count: 2;
}
image {width: 100%;border-radius: 6rpx;
}
.title {margin-left: 15rpx;margin-right: 15rpx;font-size: 30rpx;
}
.con {margin: 15rpx;margin-top: 20rpx;display: flex;font-size: 26rpx;align-items: center;justify-content: space-between;
}
.list {break-inside: avoid;width: 330rpx;border: 1px solid #f4f4f4;
}

对于css每一部分的介绍

  1. .content

    • padding: 30rpx;:设置容器 .content 的内边距为 30rpx,这会在容器内部的内容和容器的边缘之间添加空间。
    • box-sizing: border-box;:指定了盒子模型为 border-box,这意味着内边距和边框的宽度不会增加容器的总宽度,以便更好地控制盒子的尺寸。
    • column-count: 2;:将容器 .content 分成两列,实现多列布局效果。
  2. image

    • width: 100%;:将所有图片的宽度设置为父容器宽度的100%,使图片自适应容器宽度。
    • border-radius: 6rpx;:设置图片的圆角半径为6rpx,使图片的边角变得圆滑。
  3. .title

    • margin-left: 15rpx;margin-right: 15rpx;:设置标题文本的左右外边距为15rpx,这会在标题文本的左右两侧添加空白间距。
    • font-size: 30rpx;:设置标题文本的字体大小为30rpx。
  4. .con

    • margin: 15rpx;:设置内容区块的上下外边距为15rpx,以及左右外边距的默认值,创建上下间距。
    • margin-top: 20rpx;:增加内容区块的上外边距,以增加上方的间距。
    • display: flex;:将内容区块设置为弹性布局,以便内部元素可以灵活布局。
    • font-size: 26rpx;:设置内容文本的字体大小为26rpx。
    • align-items: center;:设置内容区块内元素的纵向对齐方式为居中对齐。
    • justify-content: space-between;:设置内容区块内元素的横向对齐方式为两侧对齐,左右两侧留有空白空间。
  5. .list

    • break-inside: avoid;:避免在列表项之间分页中断,以确保每个列表项在同一页内显示完整。
    • width: 330rpx;:设置列表项的宽度为330rpx。
    • border: 1px solid #f4f4f4;:给列表项添加1像素宽的实线边框,边框颜色为 #f4f4f4,用于界定列表项的边界。

HTML部分

循环自己获取到的数据,也就是itemList的数据,绑定一个下标循环渲染

<template><view><view class="content"><view class="list" v-for="(item, index) in itemList" :key="index"><image mode="widthFix" :src="item.imageSrc"></image><view class="title">{{ item.title }}</view><view class="con">{{ item.content }}</view></view></view></view>
</template>

完整代码

<template><view><view class="content"><view class="list" v-for="(item, index) in itemList" :key="index"><image mode="widthFix" :src="item.imageSrc"></image><view class="title">{{ item.title }}</view><view class="con">{{ item.content }}</view></view></view></view>
</template><script>
export default {data() {return {itemList: [{imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',title: '我是标题1',content: '我是内容1',},{imageSrc: 'https://pic.imgdb.cn/item/650850d7204c2e34d3a984ca.jpg',title: '我是标题2',content: '我是内容2',},{imageSrc: 'https://pic.imgdb.cn/item/64eee7e1661c6c8e54a86a07.jpg',title: '我是标题3',content: '我是内容3',},{imageSrc: 'https://pic.imgdb.cn/item/65085109204c2e34d3a9933c.jpg',title: '我是标题4',content: '我是内容4',},{imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',title: '我是标题5',content: '我是内容5',},],};},onUnload() {},methods: {},
};
</script><style scoped>
.content {padding: 30rpx;box-sizing: border-box;column-count: 2;
}
image {width: 100%;border-radius: 6rpx;
}
.title {margin-left: 15rpx;margin-right: 15rpx;font-size: 30rpx;
}
.con {margin: 15rpx;margin-top: 20rpx;display: flex;font-size: 26rpx;align-items: center;justify-content: space-between;
}
.list {break-inside: avoid;width: 330rpx;border: 1px solid #f4f4f4;
}
</style>

谢谢观看

相关文章:

uniapp瀑布流布局写法

首先我们要清楚瀑布流是什么&#xff1f; 瀑布流布局&#xff08;Waterfall Flow Layout&#xff09;&#xff0c;也称为瀑布流式布局&#xff0c;是一种常见的网页或移动应用布局方式&#xff0c;特点是元素以不规则的方式排列&#xff0c;就像瀑布中的流水一样&#xff0c;每…...

蓝桥杯 题库 简单 每日十题 day8

01 扫雷 题目描述 在一个n行列的方格图上有一些位置有地雷&#xff0c;另外一些位置为空。 请为每个空位置标一个整数&#xff0c;表示周围八个相邻的方格中有多少个地雷。 输入描述 输入的第一行包含两个整数n&#xff0c;m。 第2行到第n1行每行包含m个整数&#xff0c;相邻整…...

Keepalived 高可用(附带配置实例,联动Nginx和LVS)

Keepalived 一、Keepalived相关知识点概述1.1 单服务的风险&#xff08;单点故障问题&#xff09;1.2 一个合格的集群应该具备的特性1.3 VRRP虚拟路由冗余协议1.4 健康检查1.5 ”脑裂“现象 二、Keepalived2.1 Keepalived是什么&#xff1f;2.2 Keepalived体系主要模块及其作用…...

第二证券:今年来港股回购金额超700亿港元 9月近200家公司获增持

本年以来&#xff0c;港股上市公司回购力度不断增强。据恒生指数公司计算&#xff0c;到9月15日&#xff0c;本年以来港股回购金额到达735亿港元&#xff0c;占去年全年总额的70%。该公司预测&#xff0c;2023年港股回购金额可能到达929亿港元&#xff0c;是前5年年度平均水平的…...

Autosar基础——RTE简介

AutoSAR文章目录 AUTomotive Open System Architecture Autosar-简介和历史发展 Autosar-软件架构 Autosar软件组件-Application Layer介绍和SWC(Software Component)类型 Autosar-Runnables(可运行实体) Autosar-OS配置 Autosar IOC机制(核间通信) Autosar实践-CANTp Auto…...

几个国内可用的强大的GPT工具

前言&#xff1a; 人工智能发布至今&#xff0c;过去了九个多月&#xff0c;已经成为了我们不管是工作还是生活中一个重要的辅助工具&#xff0c;大大提升了效率&#xff0c;作为一个人工智能的自然语言处理工具&#xff0c;它给各大行业的提供了一个巨大的生产工具&#xff0c…...

《Python等级考试(1~6级)历届真题解析》专栏总目录

❤️ 专栏名称&#xff1a;《Python等级考试&#xff08;1~6级&#xff09;历届真题解析》 &#x1f338; 专栏介绍&#xff1a;中国电子学会《全国青少年软件编程等级考试》Python编程&#xff08;1~6级&#xff09;历届真题解析。 &#x1f680; 订阅专栏&#xff1a;订阅后可…...

在IntelliJ IDEA 中安装阿里P3C以及使用指南

在IntelliJ IDEA 中安装阿里P3C以及使用指南 1.关于阿里p3c1.1说明1.2什么是P3C插件1.3p3c的作用是什么 2 如何在IDEA中安装p3c2.1 插件安装2.2 插件使用 3.参考连接 1.关于阿里p3c 1.1说明 代码规范检查插件P3C&#xff0c;是根据《阿里巴巴java开发手册(黄山版)》转化而成的…...

Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、开发前准备&#xff1f;二、使用步骤1、引入库2、配置在 application.yml 里面进行配置&#xff1a;3、alipay的java配置&#xff1a;AplipayConfig.java4、支付…...

详解Nacos和Eureka的区别

文章目录 Eureka是什么Nacos是什么Nacos的实现原理 Nacos和Eureka的区别CAP理论连接方式服务异常剔除操作实例方式自我保护机制 Eureka是什么 Eureka 是Spring Cloud 微服务框架默认的也是推荐的服务注册中心, 由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用…...

在Vue中实现组件间的通信(父子通信,非父子通信,通用通信)

在vue中实现组件间的通信 文章目录 在vue中实现组件间的通信1、组件通信1.1、不同的组件关系和组件通信方案分类1.2、组件通信的解决方案1.3、非父子通信- event bus事件总线 2、prop2.1、prop详解2.2、prop校验2.3、prop & data、单向数据流 3、v-mdoel原理 1、组件通信 …...

LLaMA参数微调方法

1.Adapter Tuning&#xff1a;嵌入在transformer中 新增了一个名为adapter的结构&#xff0c;其核心思想是保持模型其他原始参数不变&#xff0c;只改变adapter的参数&#xff0c;其结构如下图所示&#xff1a; 1.在每一个transformer模块最后都加入一层adapter。 2.adapter首…...

NSSCTF之Misc篇刷题记录(17)

NSSCTF之Misc篇刷题记录&#xff08;17&#xff09; [闽盾杯 2021]DNS协议分析[GFCTF 2021]pikapikapika NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&#xff1a;所有FLAG改为NSSCTF [闽盾杯 2021]DNS协议分析 数据包提示给得是DNS数据包 直接过滤一下 发现 数据里面存…...

红与黑(bfs + dfs 解法)(算法图论基础入门)

红与黑问题 文章目录 红与黑问题前言问题描述bfs 解法dfs 解法 前言 献给阿尔吉侬的花束( 入门级bfs查找 模版解读 错误示范 在之前的博客当中&#xff0c;详细地介绍了这类题目的解法&#xff0c;今天为大家带来一道类似的题目练练手&#xff0c;后续还会更新更有挑战的题目…...

为何学linux及用处

目前企业使用的操作系统无非就是国产类的&#xff0c;windows和linux类。我们要提升自己的技能&#xff0c;需要学习这两款。我记得在大学时期&#xff0c;学习过windows以及linux&#xff0c;但当时觉得又不常用&#xff0c;就学的模棱两可。毕业之后&#xff0c;你会发现&…...

ChatGPT高级数据分析功能

目录 只需上传数据集,系统即可自动进行分析。我们首先进行了一次测试。准备了一份关于二手车的数据,其格式如下: 接下来调用,GPT中的高级数据分析功能,上传数据,并要求进行分析 第一步:自动对数据字段进行详细的解释: 第二步,对数据进行预处理,比如缺失值,基本的…...

共享WiFi贴项目怎么实施与运营,微火为你提供高效解答!

共享WiFi贴是一项有前景的商业项目&#xff0c;不仅可以满足用户对网络的需求&#xff0c;还可以为创业者带来盈利的机会。那么&#xff0c;我们来看看如何有效地开展共享WiFi贴项目。 最重要的是选择合适的位置。共享WiFi贴项目的成功与否很大程度上取决于位置选择。优先选择人…...

计算机组成原理——基础入门总结(二)

上一期的路径&#xff1a;基础入门总结&#xff08;一&#xff09; 目录 一.输入输出系统和IO控制方式 二.存储系统的基本概念 三.cache的基本概念和原理 四.CPU的功能和基本结构 五.总线概述 一.输入输出系统和IO控制方式 IO设备又可以被统一称为外部设备~ IO接口&…...

腾讯mini项目-【指标监控服务重构】2023-08-06

今日已办 feature/client_traces_profile 修改 consumer 4个阶段的 spankind将 profile 的 span 作为 root span&#xff0c;保持与 venus 的 follows from 的 link feature/profile-otelclient-metric 将 metric 部分使用新分支 push go.opentelemetry.io/otel/propagatio…...

ruoyi菜单折叠,菜单收缩

问题描述 VUE菜单有一个BUG&#xff0c;当我们点击其它按钮或者首页的时候&#xff0c;已经展示的一级菜单是不会自动收缩的。这个问题也导致很多开发者把一级菜单都换成了二级菜单。 错误展示 错误的效果请看下图。 解决方法 1、寻找菜单文件 因为我使用的是ruoyi的前端框…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...