如何使用Bootstrap实现瀑布流布局


这篇文章将为大家详细讲解有关如何使用Bootstrap实现瀑布流布局,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。瀑布流是近几年流行起来的一种网页布局,视觉表现为参差不齐的多栏布局,本案例便是使用 Bootstrap 实现一个瀑布流布局。官方解释:Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多 12 列。它包含了易于使用的预定义类。简单来说,就是 Bootstrap 为了快速布局从外到内写好了三类样式:外层的固定宽度 .container 或 100% 宽度 .container-fluid 样式;行 .row 样式,必须包含在 .container.container-fluid 中;列 .col-md-** 可以是 1 到 12,此处代表中等屏幕按此标准显示,.col-md-1.row 的 1/12,.col-md-12.row 的 12/12)或列偏移 .col-md-offset-** 可以是 1 到 12),包含在 .row 容器中,从而快速进行栅格布局。.col-md-* 示例:.col-md-* 效果图:使用列偏移 .col-md-offset-* 示例:.col-md-offset-* 效果图:另外需要注意的是,不管 .col-md-*.col-md-offset-* 怎么搭配使用都要保证 * 总和不超过 12,不然会发生断行现象。缩略图最常出现的是在产品的展示页,最常见的比如一些购物网站的商品展示。缩略图需要配合上面所介绍的栅格系统来使用,使用方法是把 标签包在带 .thumbnail 样式的容器里面,如果我们想添加一段文字描述,可以在里面添加一个样式为 .caption 的容器。.thumbnail 示例:.thumbnail 效果图:为了让图片适应容器的大小,可以为图片添加 .img-responsive 样式。.img-responsive 示例:另外还可以添加 img-rounded/img-circle/img-thumbnail 让图片免费云主机域名呈现圆角/圆形/缩略图的形状。改变图片形状示例:改变图片形状效果图:看完了上面的内容,下面就开始实战了。首先用栅格结构搭建一个放图片的区域,这里我们在左右各留 1/12 的空白。效果图:然后用上面所看到的带描述的缩略图样式,每个缩略图又占这中间 10/12(看作一个整体)的 4/12,每行放三个缩略图,放三行。缩略图里的图片用响应式图片的样式 .img-responsive 和圆角样式 .img-rounded 修饰下。
阅读是运用语言文字来获取信息,认识世界,发展思维,并获得审美体验的活动。它是从视觉材料中获取信息的过程。视觉材料主要是文字和图片,也包括符号、公式、图表等。

阅读是运用语言文字来获取信息,认识世界,发展思维,并获得审美体验的活动。它是从视觉材料中获取信息的过程。视觉材料主要是文字和图片,也包括符号、公式、图表等。

阅读是运用语言文字来获取信息,认识世界,发展思维,并获得审美体验的活动。它是从视觉材料中获取信息的过程。视觉材料主要是文字和图片,也包括符号、公式、图表等。
效果图:到这里已经把图片排列好了,但是看起来怪怪的,因为上下图片之间有一片空隙,看起来很不美观,我们的瀑布流的特点是宽度一致,高度自适应布局。目前已经实现了宽度一致,要想实现高度自适应要用到 CSS3 中的一个样式 column-width。官方解释:设置或检索对象每列的宽度,对应的脚本特性为 columnWidth。给容器加了 column-width 这个样式时,浏览器会给你计算容器里面的

应该显示多少列,计算一个相对合理的布局方式。

首先我们给缩略图外部的容器加一个 id="container"

 

然后为这个 id 加上 column-width 样式。

#container{
-webkit-column-width:354px;/*SafariandChrome*/
-moz-column-width:354px;/*Firefox*/
-o-column-width:354px;/*Opera*/
-ms-column-width:354px;/*IE*/
column-width:354px;
}
#container>div{
width:354px;/*宽度根据实际情况调节,应与上面一致*/
overflow:auto;/*防止内容溢出导致布局错位*/
}

效果图:

因为现在主流浏览器(Chrome/Firefox/Opera/Safari)都已经支持了 CSS 变量,为了方便调试和维护,上面的 CSS 代码也可以这么写。

body{
body{
font-family:"微软雅黑";
--img-width:354px;/*两根连词线"--"加变量名"img-width"声明变量*/
}
#container{
-webkit-column-width:var(--img-width);/*用"var(--变量名)"使用变量*/
-moz-column-width:var(--img-width);
-o-column-width:var(--img-width);
-ms-column-width:var(--img-width);
column-width:var(--img-width);
}
/*另:var()里面可以放第二个参数,在变量不存在时取第二个值,例如var(--img-width,200px)中,如果"--img-width"不存在则使用第二个参数"200px"*/
#container>div{
width:var(--img-width);
overflow:auto;
}

到这里我们的 Bootstrap 瀑布流布局就完成了,一步步完成下来还是很简单的

3.3 扩展

除了用 CSS3 实现瀑布流之外,还可以用 JavaScript 来实现这个效果,参考代码如下。

//页面加载完之后再加载瀑布流
window.onload=function(){
//这里引用col-md-4是因为在盒子里包裹图片没有其他作用,如果不想冲突也可以创建其他Class
loadWaterfall('container','col-md-4');
}

//加载瀑布流函数//思路来自Amy老师
functionloadWaterfall(boxID,thumbnailClass){
//获取装缩略图外部的盒子
varbox=document.getElementById(boxID);
//获取装缩略图的数组
varthumbnail=box.getElementsByClassName(thumbnailClass);
//获取每个缩略图的宽度
varthumbnailWidth=thumbnail[0].offsetWidth;
//计算盒子内每行可以排列几个缩略图
varcolCount=Math.floor((document.documentElement.clientWidth*(10/12))/thumbnailWidth);
//创建放每次整理好的高度数组
varthumbnailHeightArr=[];
for(vari=0;i

首先我们给缩略图外部的容器加一个 id="container"。然后为这个 id 加上 column-width 样式。效果图:因为现在主流浏览器(Chrome/Firefox/Opera/Safari)都已经支持了 CSS 变量,为了方便调试和维护,上面的 CSS 代码也可以这么写。到这里我们的 Bootstrap 瀑布流布局就完成了,一步步完成下来还是很简单的除了用 CSS3 实现瀑布流之外,还可以用 JavaScript 来实现这个效果,参考代码如下。

相关推荐: 怎么使用Linux命令移动/复制文件/目录到指定目录下

这篇文章主要介绍“怎么使用Linux命令移动/复制文件/目录到指定目录下”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Linux命令移动/复制文件/目录到指定目录下”文章能帮助大家解决问题。1.1 复制文件复制…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/31 21:36
Next 07/31 22:27

相关推荐