flex布局实现瀑布流排版

网上有很多有关js(jq)实现瀑布流和有关瀑布流的插件很多,例如:插件(MasonryWookmark等等)。按照正常的逻辑思维,瀑布流的排版(item列表)一般都是 由左到右,上而下排序的结果,单纯的css实现这一点有些困难 ,下面分享一款由flex布局实现的瀑布流效果,虽然效果难以达到有些插件的效果,但也算是简单实用吧。如果您还对flex不是太了解,那您需要先了解一下flex布局。

实现效果图:

html结构:

<div class="waterfall">
   <div class="item">
      <div class="item-content">
         三月到大理赏樱花不远不近
      </div>
   </div>
   <div class="item">
       <div class="item-content">
          三月到大理赏樱花不远不近,才是最好的距离余生,请带上自己的阳光回忆,在部队那些日子被遗忘的花儿春光
       </div>
   </div>
   <div class="item">
      <div class="item-content">
          三月到大理赏樱花不远不近,才是最好的距离余生,请带上自己的阳光回忆
      </div>
   </div>
</div> 

关于item列表,我添加的比较少,您多添加几个就可以了......

css样式:

.waterfall{
  column-count: 3;
  column-gap: 0;
}

.item{
  box-sizing: border-box;
  break-inside: avoid;
  padding: 10px;
}
.item-content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 10px;
  height: auto;
  font-size: 20px;
  color: #686868;
  box-sizing: border-box;
  border: 1px solid #ccc;
}

这样flex的简单瀑布流布局就可以了~

原文地址:https://www.cnblogs.com/a-cat/p/8618675.html

时间: 2024-11-10 20:31:12

flex布局实现瀑布流排版的相关文章

JS-DOM:基础实操---瀑布流排版

CSS部分 <style type="text/css">#wrap{    width: 980px;    margin: 0 auto;    border: 1px solid blue;}#wrap ul{    width: 250px;    margin: 10px;    border: 1px solid #ccc;    float: left;    padding: 0;}#wrap ul li{    width: 248px;    list-

瀑布流式布局

今天终于搞懂了瀑布流式布局,哈哈,总结下 瀑布流式布局分为两种类型:1.每一列都限定宽度不限定高度的布局(使用浮动)2.宽度不是写死的,是根据页面的放大缩小变化的(定位布局) 瀑布流式布局的重点是:每个新加载的模块都应该显示在原有模块高度最小的下方 注意事项: 图片:接收到的数据在插入到文档的过程中,可能会因为图片的加载速度影响Li的最小高度,可以等图片加载完触发某个事件,再继续加载图片(还未研究出):可以设置图片的相对宽高; 什么时候鼠标滚动的时候继续加载数据:当最小高度的模块显示在文档可视区

UICollectionView的简单使用(二)— 瀑布流(石工布局)

有了上一篇的基础,发现现在常用UICollectionView的布局是瀑布流(石工布局),首先我看看默认大小不一的布局. 1.默认布局 我们在ViewController.m文件添加一下代码 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)ind

css3多列布局瀑布流加载样式

看了一些网站的瀑布流加载,正好看到css3的多列属性,尝试着写了一个css做布局的瀑布流. 直接上代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>CSS3多列属性瀑布流</title> <style> /*大层*/ .container{width:80%;margin: 0 auto;}

初步使用RecyclerView实现瀑布流

先看效果 关于RecyclerView,真的是很强大. 个人觉得主要方便的地方是 1.直接可以设置条目布局,通过setLayoutManager LinearLayoutManager:线性布局,横向或者纵向滑动列表 GridLayoutManager:表格布局 StaggeredGridLayoutManager:流式布局,例如瀑布流效果 2.可以直接设置分割线       addItemDecoration方法 3.直接设置添加删除item动画   setItemAnimator方法 4.对

js实现瀑布流加载图片效果

今天学习了一个瀑布流加载效果,很多网站都有瀑布流效果,瀑布流就是很多产品显示在网页上,宽相同,高度不同,表现为多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.原理是:1.设定一行中的列数:2.取第一行中每一个div的高度并把每一个高度放进一个数组中:3.算出数组中最小高度的index值:4.把第二行的第一个div放到最小高度的div的下方并把重新算出的高度值放进数组中,重新计算最小高度的index值:5.以此类推实现多栏布局的瀑布流效果:6.如果最后一张div的高度

简单的瀑布流

最近需要一个简单的瀑布流效果,所以网上找了一个,修改了部分代码 1.轻量代码,压缩2kb. 2.适用宽度自适应布局.瀑布流列由css控制.(先加入空列,获取宽度,删除空列,根据总宽计算列数.) wall.js "use strict"; (function ($) { $.fn.jaliswall = function (options) { this.each(function () { var defaults = { item: '.wall-item', columnClass

自定义UICollectionLayout布局 —— UIKit之学习UICollectionView记录一《瀑布流》

一.思路 思路一:比较每一行所有列的cell的高度,从上到下(也就是从第一行开始),从最短的开始计算,(记录下b的高度和索引,从开始计算,依次类推) 思路二:设置上.下.左.右间距和行间距.列间距及列数. 思路三:实现的重要的方法. 二.代码先行. 1.自定义layout类. //入口 #import <UIKit/UIKit.h> @protocol STRWaterLayoutDelegate; @interface STRWaterLayout : UICollectionViewLay

Android RecyclerView详解及实现瀑布流式布局

RecyclerView一个可以代替ListView和GridView的控件,那么RecyclerView到底比他们好在哪里? RecyclerView架构提供了一种插拔式的体验,所以实现了代码的高度解耦,使用起来也异常的灵活. 我们可以通过设置它的LayoutManager控制其显示的方式,通过ItemDecoration控制Item间的间隔,通过ItemAnimator控制Item的增删动画 RecyclerView.LayoutManager提供了三个实现类其中LinearLayoutMa