DIV+CSS奇怪问题之边界(margin)叠加
边界叠加是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。简单地说,当两个垂直边界相遇是,它们将形成一个边界,这个边界的高度等于两个边界高度中的较大者。
例如:我们在网页里加入两个层
两个层都设置为100宽 100高。第一个层背景色为红色,下边界(margin-bottom)为20 px.。第一个层背景色为黄色,上边界(margin-top)为30 px.。那么这两个层之间的距离是不是20+30=50px呢?其实不然,他们之间的距离应是他们边界中最大一个值,也就是30px。效果如图:
另外,当一个元素包含在另一个元素中时,它们的顶或底边界也发生叠加。比如:我们把层b放在a层内。
即<div id="a"><div id="b"></div></div>。然后为他们添加样式。
我们把a层设置为200*200大小,并为他添加上边界(margin-top:20px)为20px。B层样式不改变,上边界为30px。那么,这里b层距离浏览器是不是20+30=50px呢?答案肯定不是。因为发生了边界叠加,因此b层距离浏览器的距离仍然30px即(20px 30px 中最大的)。那么,a层距离浏览器的距离是20px吗?不是,而是30px.(也是边界中最大的一个)。所以,此时a b层距离浏览器的距离都是30px。 效果如图(火狐)
这就是所谓的边界叠加。但在IE里面支持的不够好,大家可以比较火狐和IE的效果差异。
注意:
1、只有普通文档流中的垂直边界才会叠加。浮动、绝对定位不会叠加
2、只有元素没有设置的padding border时,才发生边界叠加。
3、只有垂直边界才会发生叠加,水平边界不叠加。
如何消除边界叠加:
边界叠加的大多数问题可以通过添加透明边框或1px的补白来修复。
1.外层 padding
2.透明边框 border:1px solid transparent;
3.绝对定位 postion:absolute:
4.外层DIV overflow:hidden;
5.内层DIV 加float:left; display:inline;
6.外层DIV有时会用到zoom:1;
- 相关阅读
- 非常不错的支持各种浏览器的简易调色板
- 深山留言板警察出动效果
- 非常酷的javascript实现万年历功能
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法页面编码声明
- 深山旅行社管理系统免费版 V2.3
- 留言板留言板V7.2
- uni-app跨端开发微信小程序时页面栈超过10层时小程序像卡死一样假性不能点击无法跳转的解决方案
- 利用ResponseXML的方法调用163天气预报
- 共有0条关于《DIV+CSS奇怪问题之边界(margin)叠加》的评论
- 发表评论
您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。
- 更多>>同类信息
- jquery设置或获取修改classname
- 利用css3.0写出一个音乐播放的唱片碟盘的效果
- 利用css中的scale()实现放大缩小效果
- 利用background-color:#000000a8在背景颜色16进制代码之后加字母加上数字让背景色透明
- css背景使用base64编码或者将base64编码放在img图片标签中
- 利用css3中的-webkit-font-smoothing把网页文字的毛边去掉
- 更多>>最新添加文章
- dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
- Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
- 抖音直播音挂载小雪花 懂车帝小程序
- javascript获取浏览器指纹可以用来做投票
- 火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
- 在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
- python通过代码修改pip下载源让下载库飞起
- python里面requests.post返回的res.text还有其它的吗