DIV多层嵌套margin-top的BUG问题
导读:收集整理的这篇文章主要介绍了DIV多层嵌套margin-top的BUG问题,觉得挺不错的,现在分享给大家,也给大家做个参考。 今天在做登录页面的时候发现个m@R_304_2604@in-top的bug ;初始代码如下:htML:复...
收集整理的这篇文章主要介绍了DIV多层嵌套margin-top的BUG问题,觉得挺不错的,现在分享给大家,也给大家做个参考。 今天在做登录页面的时候发现个m@R_304_2604@in-top的bug ;
初始代码如下:
htML:
复制代码代码如下:
div class="LOGo"> /div>
div class="login_text">
div id="error" class="errorstyle"> /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处于容器外部。浮动元素不会产生外边距的叠加,所以间接解决了你遇到的问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: DIV多层嵌套margin-top的BUG问题
本文地址: https://pptw.com/jishu/584838.html