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>

谢谢观看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142746.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD七日集训第6期 十一特辑 - 按算法分类,由易到难,循序渐进,玩转OD

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、优先队列4、滑动窗口5、二叉树6、并查集7、栈 三、算法1、基础算法① 贪心算法② 二分查找③ 分治…

大咖共探AGI时代机遇,腾讯云助力大模型规模化应用提速

引言 2023 年&#xff0c;科技圈的“顶流”莫过于大模型。自 ChatGPT 的问世拉开大模型与生成式 AI 产业的发展序幕后&#xff0c;国内大模型快速跟进&#xff0c;已完成从技术到产品、再到商业的阶段跨越&#xff0c;并深入垂直行业领域。 新技术的爆发&#xff0c;催生新的应…

mdobus ASCII转CAN OPEN JAE1939协议网关

Modbus RTU协议转换网关是一种常见的设备&#xff0c;用于将Modbus RTU协议转换为其他通信协议。而CANopen是一种基于CAN总线的通信协议&#xff0c;主要用于工业自动化和控制系统中。本文将介绍Modbus RTU协议转换网关如何支持CANopen协议&#xff0c;以及该功能的应用场景和优…

洗地机哪个牌子好用又实惠?口碑最好的洗地机推荐

智能技术飞速发展的时代&#xff0c;扫地机器人这类智能家电其实也在顺应潮流和用户需求&#xff0c;不断更新迭代。暂且不说市面上现有多少个洗地机品牌&#xff0c;单单一个洗地机品牌旗下&#xff0c;其实每年都会有多个系列的新品亮相&#xff0c;我们面对的选择多了&#…

javaee之黑马乐优商城6

商品品牌的查询 上面就是我们需要根据分类id去找品牌 假设我们现在拿到的是 商品的分类id&#xff0c;我们需要根据分类id查询出对应的品牌即可 下面我们拿到上面的接口&#xff0c;直接撸代码 这个是和品牌相关联的操作&#xff0c;因为先去看一下BrandMapper,这个mapper是…

OpenCV显示10bit Raw数据

参考&#xff1a;10 12 14bit图像存储格式&#xff0c;利用Opencv显示10bit Raw数据,并根据鼠标的移动显示对应位置的灰度值。其他bit位数的Raw数据方法类似。 代码实现&#xff1a; #include<opencv2/opencv.hpp> #include<iostream> #include<opencv/highgu…

Qt扩展-QCustomPlot 简介及配置

QCustomPlot 简介及配置 一、概述二、安装教程三、帮助文档的集成 一、概述 QCustomPlot是一个用于绘图和数据可视化的Qt 控件。它没有进一步的依赖关系&#xff0c;并且有良好的文档记录。这个绘图库专注于制作好看的、发布质量的2D绘图、图形和图表&#xff0c;以及为实时可…

中间相遇法(分治类问题非等大分治的平衡做法)

分治&#xff0c;如果分成两半大小不一样&#xff0c;很容易被卡到 O ( n 2 ) O(n^2) O(n2) 在某些题目中&#xff0c;利用中间相遇法&#xff0c;我们可以优化这个过程 其优化的前提是分治的大头在找分界点 复杂度不用证&#xff0c;很好理解吧 这层找地越久&#xff0c;下…

一维卷积神经网络

假设输入数据维度为8&#xff0c;filter维度为5&#xff1b; 不加padding时&#xff0c;输出维度为4&#xff0c;如果filter的数量为16&#xff0c;那么输出数据的shape就是4*16. 一维卷积不代表卷积核只有一维&#xff0c;也不代表被卷积的feature也是一维。一维的意思是说卷…

regexp 应用

今天同事拿出个小栗子 1 如果用like的话 1,22 的情况会被字符串2匹配到这样会有问题 这里需要用concat将uids处理下 比如第一条处理成&#xff0c;1,2&#xff0c;3&#xff0c; 的形式 去模糊匹配 ‘%,1,%’ 当然like这种模糊匹配不太建议使用 2 regexp 用法 单个值 &#x…

MySQL作业1

目录 一.创建一张表&#xff0c;包含以下所有数据类型 建表&#xff1a;​编辑 二.使用以下六种约束 1.非空约束 2.唯一约束 3.主键约束 4.外键约束 5.检查约束 6.默认值约束 一.创建一张表&#xff0c;包含以下所有数据类型 Text 类型&#xff1a; Number 类型&#…

2023-9-26 JZ 复杂链表的复制

题目链接&#xff1a;复杂链表的复制 import java.util.*; /* public class RandomListNode {int label;RandomListNode next null;RandomListNode random null;RandomListNode(int label) {this.label label;} } */ public class Solution {public RandomListNode Clone(Ra…

【ComfyUI】Pytorch预训练模型(torch.hub)缓存地址修改

序言 最近玩ComfyUI时&#xff0c;每次生成图片&#xff0c;总是会下载一些东西&#xff0c;时间长了&#xff0c;C盘就不够用了&#xff0c;今天清理C盘发现&#xff0c;总是会在C:\Users\yutao\.cache\torch\hub\checkpoints这个路径下&#xff0c;下载大模型文件&#xff0…

适合零基础小白学的 Python 教程,视频或者书籍都可以?

Python 有很多衍生方向&#xff0c;比如 web 开发、网络爬虫、数据分析、数据挖掘、机器学习、人工智能等等&#xff0c;就业范围是很广的&#xff0c;Python 相较于别的编程语言对小白入门还是很友好的&#xff0c;Python 入门推荐这份书籍&#xff1a;PYTHON全案例实践 【PD…

6.wifi开发【智能家居:下】,正式开发:智能开关灯,智能采集温湿度,智能调彩灯

一。WEB Server开发 1.需求分析 用户通过页面操作插座彩灯温湿度 【开发前端1】&#xff1a;智能插座网页设计 智能插座网页设计需求 1.通过浏览器访问ESP8266 webserver 2.显示“创客学院-WiFi-智能家居” 3.显示“智能插座” 4.显示当前插座工作状态 5.按键触发插座动作 2.…

新手必看:Android studio 侧边栏实现,带源码

文章目录 前言效果图正文toolbar 用于定义应用程序的导航栏app_bardrawer_layout 用于创建侧边栏导航nav_header_draw app:menu"menu/activity_main_drawer" 前言 本篇内容主要是自己实现侧边栏后的一些总结&#xff0c;部分理论来着网络和ai助手&#xff0c;如有错…

根据文章段落内容自动插入图片php版

每篇内容根据段落判断插入图片代码附上&#xff1a; $chatd"<table>";if(stripos($content,$chatd)0){//随机输出三张图功能if($moduleid!37 &&$thumb){//判断是否存在图$idrand(1,999999);$midrand(1,9999999);$getimg"http://www.nongpin88.co…

uniapp项目实践总结(二十三)网页和小程序应用打包教程

导语&#xff1a;当你的应用程序开发完成后&#xff0c;在发布到互联网之前&#xff0c;需要进行打包操作&#xff0c;包括网页端、小程序端的打包。 目录 准备工作网页打包小程序打包 准备工作 在打包之前&#xff0c;请保证你的 uniapp 应用程序编译到网页、小程序是可以正…

2023国庆后前端面试应该准备什么?

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 本篇文章会持续更新&#xff0c;也会同步到公众号前端面试官&#xff0c;方便大家随时随地学习…

聊聊并发编程——多线程之synchronized

目录 一.多线程下数据不一致问题 二.锁和synchronized 2.1 并发编程三大特性 2.2引入锁概念 三.synchronized的锁实现原理 3.1 monitorenter和monitorexit 3.2synchronized 锁的升级 3.2.1偏向锁的获取和撤销 3.2.2轻量级锁的加锁和解锁 自适应自旋锁 轻量级锁的解锁…