好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

DIV多层嵌套margin-top的BUG问题

今天在做登录页面的时候发现个m arg in -t op的bug ;

初始代码如下:

ht ML :


复制代码

代码如下:


<div class=" LOG o"></div>
<div class="lo gin _text">
<div id="error" class="errorstyle"></div>
</div>

css:


复制代码

代码如下:


.errorstyle {
h ei ght:20px;
width:225px;
background-color: # F fc CCC;
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 -s ize:12px;
border:#FF0000 solid 1px;
margin-left:90px;
dis play :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问题 全部内容,希望文章能够帮你解决 DIV多层嵌套margin-top的BUG问题 所遇到的问题。

如果觉得 网站内容还不错, 推荐好友。

查看更多关于DIV多层嵌套margin-top的BUG问题的详细内容...

  阅读:18次