视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
CSS实现相册横向完美排布方法
2020-11-27 18:49:35 责编:小采
文档

最近要做一个相册页面,碰到的第一个问题就是如何排布。本文我们将带大家来看一个关于CSS解决相册横向完美排布例子的,希望这个例子能够为各位同学带来帮助了,有兴趣的一起来看看吧。

分析一下,有一个容器,容器有padding,每一行的每一个item之间又有margin,首先想到的是这样

<pre class="brush:css;toolbar:false">.container 
{ padding: 10px; 
 } 
 .container .item 
 { float: left; width: 24%; margin-left: 1%; border: 1px solid #CCC; 
 }
 </pre>

然而,这种情况会造成两个问题,首先第一个是第一个item自身的margin-left加上.container的padding会造成左边空白比上下左右都要大,还会造成item与item之间的垂直间距与水平间距不能控制到一样的大小。
于是考虑到使用calc属性

<pre class="brush:css;toolbar:false">.
container { padding: 5px; } 
 .container .item 
 { width: 25%; position: relative; float: left; } 
 /* 这个图片仅仅是为了获取宽高,实际是看不见的 */ .container .item > 
 img { opacity: 0; width: 100%; } 
 /* 这个才是每一个item里容器 .container .item .body
 { border: 1px solid #CCC; width: calc(100% - 10px); 
 height: calc(100% - 10px); 
 margin: auto; 
 left: 0; 
 top: 0; 
 bottom: 0; 
 right: 0; 
 }
 </pre>

以上代码如果要是用sass来实现的话,更容易了,这种实现方法相当于实际上每一个item占用的大小就是25%,只是里面的body都上下左右都有5px的边距。item与item之间的边距实际上就是每一个item的右间距加上右边item的左边距,每一个item的下边距加上它下方item的上边距。

这种实现方法有几个好处:


1、上下左右都是一样的边距
2、纯样式
3、图片比例不会被破坏

相关推荐:

关于相册效果的10篇文章推荐

今日推荐:十款超好用的JS相册特效

CSS3制作酷炫的三维相册效果示例

下载本文
显示全文
专题