手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >DIV多层嵌套margin-top的BUG问题
DIV多层嵌套margin-top的BUG问题
摘要:今天在做登录页面的时候发现个margin-top的bug;初始代码如下:html:css:.errorstyle{height:20px;w...

今天在做登录页面的时候发现个margin-top的bug ;

初始代码如下:

html:

<div></div>

<div>

<div id="error"></div>

</div>

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,一切都好了~

++++++++++++++++++++++++++++++++++++++++++++++++++

PS:

其实这个是一个外边距叠加的问题,恰恰firefox跟ie8中是正确的,而ie6、7之中是错误的,内部容器的margin与外部叠加,叠加的margin处于容器外部。浮动元素不会产生外边距的叠加,所以间接解决了你遇到的问题。

【DIV多层嵌套margin-top的BUG问题】相关文章:

关于CSS列表样式属性list-style

添加css样式的三种方法

利用css实现图片等比例缩放

css布局中的居中问题

为不同的浏览器载入不同CSS的二种方法

CSS浮动属性Float详解

margin 负值引起的层级(z-index)问题

nginx资源定向css js路径问题

CSS出现overflow的一些问题

解决火狐浏览器按钮的水平居中

精品推荐
分类导航