当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS教程:Firefox浏览器下margin-top问题

CSS样式表
CSS 表单元素不继承body的字体属性
网页制作学习教程 CSS Position
网页设计学习教程 CSS盒模型
vertical-align 表单元素垂直对齐的解决方法
不用Cookie的仿刷新二级高亮菜单
CSS3 优势以及网页设计师如何使用CSS3技术
CSS 网页制作 提高CSS可阅读性
CSS 样式表中引用图片地址在各浏览器中的差异
CSS Sprite优化 减少HTTP链接数
网页制作中应用的50个CSS技巧(国外)
CSS 英文教程 CSS语法
CSS 网页文字渐变效果
纯css 圆角实现代码
CSS 新的图像替换方法
不必需的样式脚本文件导致页面不能及时更新
CSS 约定写法 利用扩展
最全的CSS浏览器兼容问题小结
CSS 网页图文混排的10个技巧
IE的CSS制作网页技巧3则
创造100% 自适应css布局的行之有效的方法

CSS样式表 中的 CSS教程:Firefox浏览器下margin-top问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 170 ::
收藏到网摘: n/a

 很早之前就有发现这个问题,也慢慢的摸索出了一些避免这个问题的规律,但是因为比较懒,迟迟没有细究原因,今天再次遇到,忍无可忍...一探究竟。



   长出现两种情况

  (一)margin-top失效  
   先看下面代码:

<div>
<div class="box1" >float:left</div>
<div class="box2">clear:both; margin-top:20px;</div>
</div>

  两个层box1和box2,box1具有浮动属性,box2没有,这时候设置box2的上边距 margin-top没有效果。


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 网上能找到的两种比较靠谱的解释:1:“在css2.1中,水平的margin不会被折叠;垂直margin可能在一些盒模型中被折叠…”2:当第一个层浮动,而第二个没浮动层的margin会被压缩,详见--浮动元素后非浮动元素的margin的处理(地址)。

得到解决问题思路:要浮动一起浮动,要就一起不浮动。

解决办法:

1.box2增加float属性
2.box1与box2之间增加一层"<div style="clear:both;"></div>"

  (二)子元素设置margin-top作用于父容器

<div class="box" style="height:100px;background:red;">
  <div class="box2">clear:both; margin-top:20px;height:50px;width:500px;background:#000;</div>
</div>

当给box2设置margin-top时,在FF下仅作用于父容器。


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

解决办法:

1.给父容器box加overflow:hidden;属性
2.父容器box加border除none以外的属性
3.用父容器box的padding-top代替margin-top

自己工作中遇到的总结,可能会有不严谨的地方,如有发现希望指出!