说说今天在做网页时碰到的margin-top怪现象

今天在做登录页面的时候发现个margin-top的bug ,准确的说不知道是不是bug,但是有这个现象..

先看以下HTML代码:

 

1 <div class="logo"></div>
2 <div class="login_text">
3       <div id="error" class="errorstyle"></div>
4 </div>

 

 

下面是样式表

1 .errorstyle {
2     height:20px;
3     width:225px;
4     background-color:#FFCCCC;
5     color:#F00;
6     font-size:12px;
7     border:#FF0000 solid 1px;
8     margin-top:10px;  /* 注意这里 */
9 }

 

结果发现IE6.IE7正常,ie8,FF显示错误

马上去以margin-top的bug 为关键字百度,结果发现这个BUG是存在的,见margin-top的bug 

症结:当两个容器嵌套时,如果外层容器和内层容器之间没有别的元素,firefox会把内层元素的margin-top作用于父元素。

 

 

 

解决方案:

1、使用浮动来解决,即将子层代码改为:

 1 .errorstyle {
 2     height:20px;
 3     width:225px;
 4     background-color:#FFCCCC;
 5     color:#F00;
 6     font-size:12px;
 7     border:#FF0000 solid 1px;
 8     margin-left:90px;
 9     display:inline;
10     /* 以下代码修正FF和ie8的margin-top bug */
11     margin-top:10px;
12     float:left;
13     
14 }

 

2、使用padding-top来解决(因为FF盒模型问题,不推荐使用)

更多网页制作教程,欢迎继续关注网站制作教程网