DIV多层嵌套margin-top的BUG问题
今天在进行登录页面开发时,遇到了一处关于 `margin-top` 的小bug。
初始的代码布局大致是这样的:一个包含logo的div,紧接着是一个包含登录文本的div,其中还有一个带有错误提示信息的子div。在CSS样式中,给这个错误提示的div设置了`margin-top: 10px;`。
代码示例:
```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和Firefox中却出现了预期外的表现。
问题的症结在于:当两个容器嵌套,且它们之间没有其它元素时,Firefox会将内层元素的`margin-top`作用到父元素上。这在某些情况下可能导致布局上的问题。
解决方案有两个:
解决方案一:使用浮动来解决问题。将子元素的代码修改为:
```css
.errorstyle {
/ 其他样式不变 /
float: left;
}
```通过浮动,可以避免Firefox对`margin-top`的特殊处理。
解决方案二:使用`padding-top`来替代`margin-top`(但由于Firefox的盒模型问题,这种方法不太推荐)。
最终,通过调整布局或样式设置,成功解决了这个问题。值得注意的是,其实这是一个外边距叠加的问题。在Firefox和IE8中,这种叠加是正常的,而在IE6和IE7中则是异常的。浮动元素不会产生外边距的叠加,因此它间接解决了遇到的浏览器兼容性问题。
网站模板
- DIV多层嵌套margin-top的BUG问题
- 户外摄影逆光补光基础用光大作战技巧
- Windows10系统更新显卡驱动以便图形任务正常输出
- span设CSS样式总是不起作用的解决方法
- 3dsMax怎么克隆物体- 3dsMax克隆功能的使用方法
- CSS类名支持中文命名的示例
- 电脑联网失败不能上网显示错误代码10107该怎么办
- 如何在Dreamweaver cs6 中设置默认文档格式为html5
- win10系统激活工具怎么用 win10破解激活方法教程
- 电脑插件太多该怎么管理- 电脑插件的管理教程
- cdr文本怎么设置首字下沉- cdr首字下沉效果的制作
- IBM WebSphere MQ队列管理器绕过安全限制漏洞
- Win10正式版C盘inetpub文件夹删不掉怎么办?如何解
- Animate帧标签怎么制作跳转动画-
- Win 7-X86系统升级出现80072EE2错误如何解决
- AI怎么制作圆环呢-AI制作圆环的三种方法