关于DIV多层嵌套的margin-top的BUG
2016-07-13 00:56
543 查看
今天在做登录页面的时候发现个margin-top的bug ;
初始代码如下:
html:
2、使用padding-top来解决(因为FF盒模型问题,不推荐使用)
OK,一切都好了~
其实这个是一个外边距叠加的问题,恰恰firefox跟ie8中是正确的,而ie6、7之中是错误的,内部容器的margin与外部叠加,叠加的margin处于容器外部。浮动元素不会产生外边距的叠加,所以间接解决了你遇到的问题。可
参照文章http://www.52css.com/article.asp?id=1018
初始代码如下:
html:
css:.errorstyle { height:20px; width:225px; background-color:#FFCCCC; color:#F00; font-size:12px; border:#FF0000 solid 1px; margin-top:10px; /* 注意这里 */ }
结果发现IE6.IE7正常,ie8,FF显示错误。
症结:当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用于父元素。
解决方案:
1、使用浮动来解决,即将子层代码改为:
.errorstyle {
height:20px;
width:225px;
background-color:#FFCCCC;
color:#F00;
font-size:12px;
border:#FF0000 solid 1px;
margin-left:90px;
display:inline;
/* 以下代码修正FF和ie8的margin-top bug */
margin-top:10px;
float:left;
}
2、使用padding-top来解决(因为FF盒模型问题,不推荐使用)
OK,一切都好了~
其实这个是一个外边距叠加的问题,恰恰firefox跟ie8中是正确的,而ie6、7之中是错误的,内部容器的margin与外部叠加,叠加的margin处于容器外部。浮动元素不会产生外边距的叠加,所以间接解决了你遇到的问题。可
参照文章http://www.52css.com/article.asp?id=1018
相关文章推荐
- linux下ioctl遇到的坑
- 在阿里云 CentOS服务器上搭建nginx+mysql+php环境
- Linux Apache Wed
- Linux MySQL
- Linux PHP LAMP
- operator new之避免覆盖标准形式的new/delete的“模板”类
- Linux下正则表达式
- 关于hadoop 在浏览器中看hdfs
- Linux如何查看文件系统(磁盘使用情况)
- Linux Apache Wed
- Linux PHP LAMP
- Linux文件查找命令 find 详解
- Linux PHP
- (PPT)Linux服务器基础
- Linux常用命令 + vim常用指令
- 蚂蚁变大象:浅谈常规网站是如何从小变大的
- keepalived+nginx双机热备+负载均衡
- Linux mkdir 创建文件夹命令
- Hbase 日常运维
- operator new之placement new/delete