为什么margin-top不是作用于父元素
2016-03-25 13:11
393 查看
至于margin-top属性的基本用法再简单不过,那就是设置一个对象的上外边距,看下面的代码实例:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂蚁部落</title> <style type="text/css"> * { margin:0px; padding:0px; } div { width:100px; height:100px; background-color:green; margin-top:50px; } </style> </head> <body> <div></div> </body> </html>
以上代码可以将div的上边距设置为50px,一切运行良好,没有任何问题,再来看下一段代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂蚁部落</title> <style type="text/css"> #parent { width:200px; height:200px; background-color:red; } #children { width:60px; height:60px; background-color:green; margin:0px auto; margin-top:50px; } </style> </head> <body> <div id="parent"> <div id="children"></div> </div> </body> </html>
以上代码的初衷是让子元素的顶部距离父元素50px,但是事实上却并没有实现预
a082
期的效果,而是子元素顶部紧贴父元素,并且margin-top好像转移给了父元素,让父元素产生上外边距。这其实是一个典型的外边距合并问题,但是并非所有的浏览器都会产生这种情况,一般标准浏览器都会出现此现象,而IE6和IE7在此状态下不会出现外边距合并现象。上外边距合并出现的条件:
1.父元素的上边距与子元素的上边距之间没有border。
2.父元素的上边距与子元素的上边距之间没有非空内容。
3.父元素的上边距与子元素的上边距之间没有padding。
3.父元素和子元素中没有设置定位属性(除static和relative)、overflow(除visible)和display:inline-block等。
4.父元素或者资源都没有浮动。
注意:以上条件必须都要满足才可以。那么解决此中情况的方式也很简单,只要破坏上面的一种情况就可以了。
相关文章推荐
- 配置Hadoop2.x的HDFS、MapReduce来运行WordCount程序
- Linux下暴力破解工具Hydra详解
- Linux下显示IP地理位置信息的小工具-nali
- centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
- centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
- centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
- linux --- shell command
- Hadoop版本选择探讨
- Hadoop YARN安装部署初探
- 如何编写YARN应用程序
- Linux 3D 编程学习之小结
- Linux 3D 编程学习之小结
- Java 后台部署Linux 服务器简单记录
- Test-Nginx 安装
- Hadoop For Windows
- Linux 配置双机SSH信任
- Hadoop每日一讨论整理版
- 从传统操作系统角度理解Hadoop YARN
- 汇总运行在Hadoop YARN上的开源系统
- linux多行注释