纯css 利用多栏布局实现瀑布流 简略版

实现瀑布流页面的两种方案(纯css3/js) 瀑布流页面设计最初我是在“花瓣”这个产品上看到的,最近一个电商网站也运用了这一设计方式,可能会显得产品更有特色吧。今天我们就讨论下怎么实现一个图片的瀑布流。 基本思路 通常数据以分页的形式从后端获取,前端加载图片,一行显示两个图片,图片高度要按比例显示。如果左侧图片高就把下一张图片放到右侧,相反如果右侧图片高,就把下一张图片放到左侧,这样可以保持整个页面的布局和谐。同时,在页面滚动到距下方50px... 阅读详情

由于工作需要,今天尝试用纯css实现了一下瀑布流的布局,实现的原理是利用多栏布局配合break-inside属性,此种方式的实现代码非常简单,也不需要依赖任何插件,下面 先看一下实现的效果图:

 

下面贴上实现代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>瀑布流</title>
        <style type="text/css">
            * {
                margin: 0px;
                height: 0px;
            }
            .flow-box{
                column-count:4;
                column-gap: 15px;
                width: 100%;
                
            }
            div {
                width: 300px;
                float: left;
                break-inside: avoid;
                box-sizing: border-box;
                margin: 10px;
            }
            #div1 {
                background: #4682B4;
                height: 100px;
            }
            #div2 {
                background: #4452B4;
                height: 350px;
            }
            #div3 {
                background: #4696B4;
                height: 250px;
            }
            #div4 {
                background: #4232B4;
                height: 180px;
            }
            #div5 {
                background: #7882B4;
                height: 100px;
            }
            #div6 {
                background: #4656B4;
                height: 250px;
            }
            #div7 {
                background: #4082B4;
                height: 300px;
            }
            #div8 {
                background: #468267;
                height: 120px;
            }
            #div9 {
                background: #463454;
                height: 180px;
            }
            #div10 {
                background: #8982B4;
                height: 220px;
            }
            
        </style>
    </head>
    <body>
        <section class="flow-box">
            <div id="div1">1</div >
            <div id="div2">2</div >
            <div id="div3">3</div >
            <div id="div4">4</div >
            <div id="div5">5</div >
            <div id="div6">6</div >
            <div id="div7">7</div >
            <div id="div8">8</div >
            <div id="div9">9</div >
            <div id="div10">10</div >
        </section>
        
    </body>
</html>

 

 

遗憾的是由于break-inside属性的兼容性不好,在不支持此属性的浏览器下面,就出不来瀑布流的效果了。 

更多其他方式的实现瀑布流可以参考下面的链接: https://www.w3cplus.com/css/pure-css-create-masonry-layout.html 

 

 

HTML + JS+CSS实现瀑布流式布局(包含懒加载) 首先我们需要平铺第一行,这里我们铺了六张图片,然后就该铺第二行了,那这个待插入的图片应该放在哪个位置呢,我们可以得到每一列的高度,也就是每一列的数据块的高度加起来,得到六个高度的数值,我们算出哪一列高度最小就把待插入的图片插入到那一列的正下方,利用绝对定位定位过去(因为是绝对定位,所以top是距离页面顶部高度),left就是第几列乘以数据块宽度就可以了,如下图,待插入图片应该插入到这里。然后之前的“waterfall”函数里面的代码实现了页面缩小图片的列数也会相应的改变哦~铺垫了这么多,重点来了! 阅读详情

相关推荐

瀑布流的几种实现方式

瀑布流布局实践!

鹤渺的星球 2952

也许是最简单的纯 CSS 实现瀑布流布局!!!

或许是最简单的纯 css 实现瀑布流的方式~~

dizuncainiao的博客 5920

纯css和javascript、vue实现瀑布流布局的几种方式

因为专题制作需要用到瀑布流,所以这阵子总结了几种实现瀑布流的方式。 纯css实现瀑布流主要有3种方式: 1. 多列布局multi-columns 2.Flexbox布局 3. grid布局 multi-columns 这是columns的语法:http://www.webhek.com/post/css3-multi-columns.html html代码 ...

总结归纳 3056

浅析瀑布流布局原理及实现方式

一、瀑布流   瀑布流布局有一个专业的英文名称Masonry Layouts。瀑布流布局已经有好多年的历史了,我最早知道这个名词的时候大约是在2012年,当时Pinterest网站的布局就是使用的这种流式布局,简言之像Pinterest网站这样的布局就称之为瀑布流布局,也有人称之为Pinterest 布局。   瀑布流又称瀑布流式布局,是比较流行的一种网站页面布局方式。即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。   瀑

qq_47443027的博客 3万+

吸引用户的瀑布流布局是怎么写的?

本次我们一起学了三种能实现瀑布流布局的方法,多栏布局、网格布局和弹性布局。你学废了嘛。

ZXH0122的博客 1487

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

实现瀑布流布局的四种方法

一、 什么是瀑布流布局 1、是什么 页面上是一种 参差不齐 的多栏布局,类似上图所示随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部,大部分为图片,图片 固定 宽度,高度 不一,根据原比例缩放到宽度达到固定的要求,每行排满后,新的图片添加到后面 2、特点 固定宽度,高度不一 岑参不齐的布局 以图片为主 二、有什么优缺点 1、优点 节省空间:降低页面的复杂 对于 触屏设备非常友好:通过向上滑动浏览,交互方式更符合直觉 良好的视觉体验:浏览时不会被页面整整齐齐的高度影响,

Smile_666666的博客 3万+

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形

本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。

weixin_30530939的博客 552

如何使用CSS实现一个瀑布流布局

瀑布流布局,也称为砖墙布局或 Masonry Layout,是一种在网站上排列元素(通常是图像或其他内容块)的方式,使得每个元素在其前面的元素下方开始新的一列。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。使用Flexbox可以创建一个简单版本的瀑布流效果,但这种方法并不完全满足瀑布流的需求,因为元素会按照固定的高度顺序排列。在这个例子中,我们需要通过JavaScript来动态计算每列的高度,并将新元素放置在当前最低的列中。专栏系列(点击解锁)

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 3585

Cesium中实现阴影率分析

看到群里有人在研究这个,所以看了一下。主要是模仿超图的,实现原理超图有做回答:但其实超图的这个实现方式还是过于复杂,原因是:既然是获取太阳的日照阴影,而Cesium中原本就存在太阳,且能投射阴影,因此其实并不需要再次计算太阳位置并计算视锥获取深度图,直接使用Cesium原生的太阳深度图即可。

weixin_43481439的博客 2217

如何免费快速的部署一个自用免VIP的自动追剧工具!NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能(支持Windows,群晖nas,飞牛nas,软路由,服务器等Docker快速部署)

追剧党狂喜!豆瓣追剧神器,自动添加云盘,自动下载,微信通知,一键搞定!

XiaoqiangClub的博客 4586

纯CSS实现瀑布流布局

瀑布流布局有一个专业的英文名称Masonry Layouts。瀑布流布局已经有好多年的历史了,我最早知道这个名词的时候大约是在2012年,当时Pinterest网站的布局就是使用的这种流式布局,简言之像Pinterest网站这样的布局就称之为瀑布流布局,也有人称之为Pinterest 布局。瀑布流布局其核心是基于一个网格的布局,而且每行包含的项目列表高度是随机的(随着自己内容动态变化高度),同时每...

若晨工作室 2万+

【SystemVerilog基础】SystemVerilog Assertion 概述

断言主要是描述复杂的设计行为;是传统验证方法学一个很好的补充,可以检查到电路内部细节,相当于一种白盒验证,传统的验证方法学是纯粹的黑盒验证!property跟上面的sequence差别不大,唯一有差别可能多了两个implication(|->,|=>)注意,当有前置条件时,不满足前置条件不会fail,而是伪真!上面这个因为没有前置条件,每个周期都会去检查!注意:当没有前置条件时,不满足条件会直接fail!

MoorePlus的博客 334

纯CSS实现瀑布流布局的两种方案

博主最近在学习有关布局的相关知识,总结了使用纯CSS实现瀑布流布局的两种方案。 那么什么叫瀑布流布局呢?让我们通过图片来了解一下: 瀑布流布局其核心是基于一个网格的布局,而且每行包含的项目列表高度是随机的(随着自己内容动态变化高度),同时每个项目列表呈堆栈形式排列,最为关键的是,堆栈之间彼此之间没有多余的间距差存大。 废话不多说,直接上方案: 1. 方案一,使用CSS3的column属性,具体实...

Arlisol的博客 9150

RK3588开发笔记-PCIE接口2.5G网卡RTL8125调试记录

在RK3588平台上调试2.5G网卡(Realtek RTL8125)时,我们会用到PCIE接口,这篇文章记录了从硬件连接、内核驱动到最终实现网络通信的整个调试过程,包括可能遇到的问题和解决方案。Realtek RTL8125是为高带宽需求设计的一款高性价比2.5G以太网控制器。它不仅提供了高达2.5Gbps的网络传输速率,还具备良好的节能特性、硬件卸载引擎和广泛的操作系统支持。无论是在家庭网络、企业NAS,还是游戏和云计算等场景中,RTL8125都能为用户提供更快速、更稳定的网络连接。

flypig has a dream! 3681

一文读懂OpenClaw:核心组件与工作原理深度解析

Agent核心:负责理解意图、规划任务、协调执行消息系统:统一的消息格式,实现组件间解耦工具注册表:可扩展的工具系统,支持自定义工具模型适配层:多模型支持,统一API接口安全机制:沙箱隔离、权限确认、操作审计性能优化:并行执行、智能缓存、增量更新理解这些核心组件和工作原理,将帮助你更好地使用OpenClaw,也为后续开发自定义扩展打下坚实基础。在下一篇文章中,我们将详细介绍OpenClaw的界面操作,包括命令行与交互模式的各种技巧。

gaoxiang_120的专栏 833

详解瀑布流实现

瀑布流又称瀑布流式布局,是比较流行的一种网站页面布局方式,视觉表现为参差不齐的多栏布局。最早采用此布局的是网站是 Pinterest,后逐渐在国内流行,比如花瓣,蘑菇街等。

曹定栓的博客 4426

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

两列瀑布流_IT学堂:纯CSS的瀑布流布局方法总结

瀑布流布局出来好多年了,刚出来时,一般都采用js来实现,涌现了很多比较好的js插件,例如:masonry.js、gridify.js等等。这里就不再详说如何使用了,网上都能找到。今天讨论的是纯CSS实现瀑布流布局。一、多个列表并列的瀑布流布局法:这种布局方法非常简单,就是将多个列表横向排列,每个列表拥有的项都差不多。图片宽度固定,高度自动撑起来。html:css:.wrap{display:fle...

weixin_35715402的博客 2873

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

各种方法实现瀑布流

瀑布流又称瀑布流式布局,是比较流行的一种网站页面布局方式。即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。相信大家在日常生活中看到很多次这种不规则瀑布流,我最近在给别人写网站的时候也遇到了这个需求,觉得解决问题的过程还是挺有意思的,所以就写下这篇文章。比如网站网格布局 grid 布局解决了 flex 布局下多个元素最后一排会出现的问题。

lxh0113的博客 2624

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一小时,学习掌握瀑布流页面布局

什么是瀑布流 瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。其实瀑布流的特点就是参差不齐的排列方式,以及流式布局的扩展性,可以通过界面展示给用户多条数据,并且让用户可以有向下浏览的冲动。 博主在浏览各个网站总是看到这样的网页布局,它们的布局像瀑布流水一般,瀑布流布局在我们现在的前端页面中经常会用的到,它可以有效的降低页面的复杂度,节省很多的空间,对于整个页面不需要太多的操作,只需要下拉就可以浏览用

LIMI_伞梦的博客 8734

纯css瀑布流布局

虽然这些新出的布局方式可以让我们解决很多以前的布局难题,但是像瀑布流布局这种,就无法用它们简单来实现了。因为瀑布流一般来说都是宽度一致,但是高度是根据图片自适应的。并且图片的位置也是根据在上方图片的位置而定的。 其实最好实现瀑布流布局的办法就是用CSS的列属性套件,这套属性大多数都是用于排版杂志中的文本列。但是用于布局瀑布流也是特别实用哦。因为以前需要实现瀑布流,就必须有JavaScript的辅助来计算图片高度然后决定每张图片的定位和位置,所以现在有了列属性就可以使用纯CSS实现了。 HTNL <d.

姥姥家的饭 3407

css如何制作瀑布流

‌瀑布流是一种网站页面布局方式,视觉表现为宽度相等、高度不定的元素组成的参差不齐的多栏布局。‌ 随着页面向下滚动,新的元素会附加到最短的一列,不断向下加载‌。‌参差不齐的排列方式‌:元素的高度各不相同,形成一种动态的视觉效果。‌流式布局的扩展性‌:用户可以不断向下浏览,加载更多内容。‌适用于图片为主的网站‌:常见于一些图片、新闻、博客等内容的展示,有效利用空间,提高用户体验‌纯css写法/* 分为3列 *//* 列之间的间隙 *//* 清除默认的内边距 */padding: 0;

BANaanaa的博客 2530

《uni-app》移动端纯CSS实现不等高的瀑布流效果

前两天无意中看到朋友在玩小红书,第一眼就被其瀑布流的布局给吸引住了,感觉非常有意思,之前知道有这种布局,但大多数都是在web端,移动端上还是首次见到,因此特别想试试~

Oliver尹的博客 1979

纯css实现瀑布流(multi-column和flex布局)

瀑布流的布局自我感觉还是很吸引人的,最近又看到实现瀑布流这个做法,在这里记录下,特别的,感觉flex布局实现瀑布流还是有点懵的样子,不过现在就可以明白它的原理了 1.multi-column多列布局实现瀑布流 先简单的讲下multi-column相关的部分属性 column-count设置列数 column-gap设置列与列之间的间距 column-width设置每列的宽度 还要结合在子...

ZJW222的博客 6590

纯css实现左右两栏的瀑布流布局

图下:   关键css:     代码如下: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8" /&gt; &lt;title&gt;左右两栏布局&lt;/title&gt; &lt;style&amp

Candy_mi的博客 7673
上一篇: 前端性能优化之减少重排,对比重排与重绘
下一篇: 初识yarn
cjFrontEnd
博客等级 码龄9年 8粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值