设为首页 加入收藏

TOP

关于瀑布流的布局原理分析(纯CSS瀑布流与JS瀑布流)(一)
2019-09-30 16:49:27 】 浏览:71
Tags:关于 瀑布 布局 原理 分析 CSS

瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式。即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。

 

为什么使用瀑布流

瀑布流布局在我们现在的前端页面中经常会用的到,它可以有效的降低页面的复杂度,节省很多的空间,对于整个页面不需要太多的操作,只需要下拉就可以浏览用户需要看到的数据;并且,在当前这个APP至上的时代,瀑布流可以提供很好的用户体验,通过结合下拉刷新,上拉加载进行数据的懒加载等操作,对于用户的体验感来说是接近于满分的!

 

瀑布流的特点

其实瀑布流的特点就是参差不齐的排列方式,以及流式布局的扩展性,可以通过界面展示给用户多条数据,并且让用户可以有向下浏览的冲动。

 

瀑布流的代码实现

1.纯 css 瀑布流:( multi-columns 方法 )

// 这里是第一次接触到 column-columns 这个属性,这是一个可以设置将div元素中的文本分成几列

//默认值是:auto

//写法:

column-count:3;

-moz-column-count:3; /* Firefox */

-webkit-column-count:3; /* Safari and Chrome */

/* 注意:IE9及更早 IE 版本浏览器不支持 column-count 属性 */

//这里还会用到另一个属性 column-gap,用来调整边距,实现瀑布流布局

 

html结构代码如下:

 1 <div class="demo-1"> 
 2     <div class="item"> 
 3         <div class="item_content content-lar" style="height:100px;" > 1</div> 
 4     </div> 
 5     <div class="item"> 
 6         <div class="item_content content-sma"style="height:150px;" > 2</div> 
 7     </div>
 8     <div class="item"> 
 9         <div class="item_content content-mid"style="height:50px;" > 3</div> 
10     </div>
11     <div class="item"> 
12         <div class="item_content content-sma" style="height:200px;" > 4</div> 
13     </div>
14     <div class="item"> 
15         <div class="item_content content-mid"style="height:60px;" > 5 </div> 
16     </div>
17     <div class="item"> 
18         <div class="item_content content-lar"style="height:90px;" > 6</div> 
19     </div> 
20     <div class="item"> 
21         <div class="item_content content-sma"> 7</div> 
22     </div>
23     <div class="item"> 
24         <div class="item_content content-lar"style="height:120px;" > 8</div> 
25     </div>
26     <div class="item"> 
27         <div class="item_content content-lar"> 9</div> 
28     </div>
29     <div class="item"> 
30         <div class="item_content content-sma" style="height:100px;" > 10 </div> 
31     </div>
32     <div class="item"> 
33         <div class="item_content content-mid"> 11 </div> 
34     </div>
35     <div class="item"> 
36         <div class="item_content content-mid"style="height:100px;" > 12</div> 
37     </div>
38     <!-- more items --> 
39 </div>

 

CSS代码如下:

 1 .demo-1{  2  -moz-column-count:3; /* Firefox */  3  -webkit-column-count:3; /* Safari 和 Chrome */  4  column-count:3;  5  -moz-column-gap: 1em;  6  -webkit-column-gap: 1em;  7  column-gap: 1em;  8  width: 80%;  9  margin:0 auto; 10  } 11  .item { 12  padding: 2em; 13  margin-bottom: 2em; 14  -webkit-column-break-inside: avoid; 15  break-inside: avoid; /*防止断点*/ 16  background: #ccc; 17  text-align: center; 18     }

 

效果图:

 

这里有个弊端,这并不符合瀑布流的原理,如果使用纯css写瀑布流,则每一块都是从上往下排列,不能做到从左到右排列,并且不会识别哪一块图片放在哪个地方合适,若是再配合动态加载,效果会特别不好,所以只能通过JS来实现瀑布流。

那么这里用图片来分析一下我们想要的瀑布流是什么样的。

 

瀑布流的位置分析图解

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇vue项目引入外部字体 下一篇thinkPHP+LayUI 流加载实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目