饿了么webapp之块级盒子垂直相邻margin重叠
来源:互联网 发布:霍光为什么不篡位知乎 编辑:程序博客网 时间:2024/06/06 00:08
效果图:
我这里设想四周margin都是一样的值,然后商品之间的分隔线是通过伪元素after添加border-bottom进去的,但是发现实际效果是:
这是由于块级元素相邻会造成margin重叠,本来上下都有margin,被重叠只剩下一个margin,具体原因见
http://www.cnblogs.com/zhangmingze/articles/4664074.html
这是与BFC有关的,BFC介绍:http://www.jianshu.com/p/682ae6476a14
之所以会重叠,是因为他们的margin直接接触,并没有border或者padding把他们分隔开
而我这里的解决方案是给商品盒子添加padding-bottom,即使margin被重叠,依然可以有padding撑开距离.
如果是父元素和子元素margin重叠:
1、而一般的解决方法是通过添加border或padding,使得margin分隔开
2、还可以利用BFC,给父元素设置了BFC,就会为这个块级元素生成一个独立的块圾上下文,就像在window全局作用域内,声明了一个function就会生成 一个独立的作用域一样,新开僻的BFC像是开僻了一个新的小宇宙,使这个块圾元素内部的排版完全独立隔绝。就相当于这个元素是一个独立的body,你想象一下你直接给body的直接子元素设置margin还是有效果的吧?
如果是相邻元素之间发生折叠:
1、由于是在同一个BFC才会折叠,因此你可以给他们包一个父元素,设置BFC,例如overflow:hidden,它们就不会在同一个BFC中,自然不会折叠。
2、可以通过clearance,具体介绍:http://www.w3cplus.com/css/understanding-bfc-and-margin-collapse.html
由于设置了浮动,被设置浮动的块盒是不会和其他元素折叠的,但是块盒后面的元素还是可以和浮动前面的元素折叠。因此,我们可以给后面的元素设置clear:both
.parent{width: 100px;height: 100px;border: 1px solid yellow;margin: 10px 10px 30px;float: left;}.next{width: 50px;height: 50px;border:1px solid blue;clear: both;margin: 50px; }.pre{width: 50px;height: 50px;background-color: pink;margin: 20px;}
<div class="pre"></div><div class="parent"></div><div class="next"></div>
- 饿了么webapp之块级盒子垂直相邻margin重叠
- 盒子模型之margin重叠深度分析
- 仅当两个块级元素相邻并且在同一个块级格式化上下文时,它们垂直方向margin会折叠
- 相邻元素的 margin-top重叠问题
- html之margin 重叠现象
- margin重叠之父子元素
- css之Margin重叠现象
- 饿了么webapp之1px边框
- 饿了么webapp之数据二级访问
- 饿了么webapp之header的背景
- 饿了么webapp之css footer的实现
- vue饿了么webapp之vue.set用法
- margin重叠
- margin 重叠
- margin重叠
- margin重叠
- html5第七课时,块级盒子的垂直外边距合并
- margin在div块嵌套和垂直排列时特性
- 10.22周日
- Spark源码走读(三) —— Stage的划分和提交
- 将centos作为远程服务器,连接并上传文件
- java 1.8 集合源码解析1:Iterable和Iterator
- 数据库与连接池技术
- 饿了么webapp之块级盒子垂直相邻margin重叠
- 无偏估计量
- 【C++】别再用memset初始化int数组了,用fill或者fill_n靠谱多了
- hugepages_settings.sh
- PyQt5学习教程4:对退出进行进一步确认
- Codeforces 873D Merge Sort
- 备忘录(不断更新)
- kdump配置
- 使用C#开发的一套管理系统