栅格布局与css样式布局,CSS响应式栅格布局中边距与百分比配合

在平日的网页布局中,我们需要在一个未知宽度的div块中,平放N个宽度一样的块。(在如今的响应式布局中经常遇上)

如图类似的摆放:

7af3faac5068bfaf02d5966be6ea4872.png

首先,看到这个图片,大家多半想到的是width:25%;float:left;。

不错,这是一个非常好的构思,但局限于块之间没有间距。如果需要为块之间添加10px的间距,同时如果父级div块宽度缩小放大,边距始终都是10px。此时,又该如何呐?

或许,这里只是一个简单的概念,但具体槽点,还是需要大家自己实践的时候,才真的明白(大神不要打我……)。

解决这种问题的方法又很多种,比如,做计算,把每个子块的宽度算出来;但问题来了,父块的宽度根本没办法确定的呀。

为此,我从第一次接触到响应式布局开始,不断的思考这个问题。经过多次的实践后,最终总结出了一个简单的逻辑。

【逻辑】

首先,子块的宽度等于1除以子块数量:1/N。这个宽度是必然的,只有这样才能做到宽度等比分割。

然后,子块中添加一个块级标签,设置其内边距padding为5px,因为两个子块之间的5px加起来等于10px。

而此时子块中的子块,就是内容区了。如上图中,四张图片是一样的宽度,那直接为img添加一个width:100%;即可。

OK了,当父级块层宽度无论如何改变,只要不定于一定内宽度,那么,子块的宽度永远都是一样的,而且间距都是10px。

代码演示一遍吧,或许是我没有讲的不够好,多数人会看不懂我这个。.parent {width:100%;} /*父级块的宽度简单一点,就设置100%吧,做一个伪响应式*/

/*假设需要四个子级块并排*/

.parent .child {width:25%;float:left;} /*子级宽度为1/4,然后靠左浮动*/

.parent .child .childBody {padding:5px;} /*设置内边距为5px,这里设置margin和padding都可以,唯一不同的是margin上下之间会合并*/

主要实现功能就这3行代码,为了大家能够看清逻辑,这里用的后代选择器。

目前我的博客在“猜你喜欢”中,用的就是这种方法(两个多月前写的代码,可能会出现一定偏差),大家可以缩放浏览器参考效果(我说的是减少浏览器宽度,不是让你按着ctrl滚动滑轮哟~)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值