`

Firefox下margin-top问题

    博客分类:
  • css
阅读更多

(一)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没有效果。

 

<!DOCTYPE <a href="http://www.blue1000.com/bkhtml/c22/" target="_blank" title="HTML/JavaScript教程">HTML</a> PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html <a href="http://www.blue1000.com/bkhtml/c21/" target="_blank" title="XML教程">XML</a>ns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Firefox下margin-top问题</title>
<style type="text/<a href="http://www.blue1000.com/bkhtml/c23/" target="_blank" title="CSS教程">CSS</a>">
<!--
* {
margin:0;
padding:0;
}
.box1{
float:left;
width:500px;
height:100px;
background:#999;
}
.box2{
margin-top:20px;
width:500px;
height:50px;
background:#000;
color:#fff;
clear:both;
}
-->
</style>
</head>
<body>
<div>
<div class="box1" >float:left</div>
<div class="box2">clear:both; margin-top:20px;</div>
</div>
</body>
</html>

 

网上能找到的两种比较靠谱的解释: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下仅作用于父容器。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Firefox下margin-top问题</title>
<style type="text/css">
<!--
* {
margin:0;
padding:0;
}
.box2{
margin-top:20px;
width:500px;
height:50px;
background:#000;
color:#fff;
}
-->
</style>
</head>
<body>
<div class="box" style="height:100px;background:red;">
<div class="box2">clear:both; margin-top:20px;height:50px;width:500px;background:#000;</div>
</div>
</body>
</html>

 

解决办法:

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

 

 

0
1
分享到:
评论

相关推荐

    Firefox下margin-top会出错

    ### Firefox 下 `margin-top` 失效问题及解决方案 #### 一、问题概述 在进行网页设计时,尤其是在使用Mozilla Firefox浏览器环境下,开发者可能会遇到一个常见的布局问题:当尝试通过CSS中的`margin-top`属性来调整...

    margin-top在火狐和IE的区别

    标题“margin-top在火狐和IE的区别”涉及的是网页布局中关于CSS属性`margin-top`在不同浏览器,尤其是Firefox和Internet Explorer(IE)之间表现不一致的问题。在描述中提到,当设置`margin-top`时,可能会导致定位...

    firefox margin-top失效的原因与解决办法

    在Web开发过程中,我们可能会遇到这样一个问题:使用`margin-top`属性本来是为了实现元素的上边距效果,但在某些浏览器中,比如Firefox,这个属性似乎并没有按预期工作,导致上边距没有正确显示。这便是本篇文档要...

    margin 负值引起的层级(z-index)问题

    特别是在旧版的浏览器(如IE6和IE7)中,它们处理margin负值和层叠上下文的方式与现代浏览器(如IE8、Firefox、Chrome等)有所不同,这可能导致在不同浏览器中元素的覆盖顺序看起来不一致。 在IE6和IE7浏览器中,...

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

    当一个`&lt;div&gt;`元素作为另一个`&lt;div&gt;`的子元素,并且它们之间没有其他元素分隔时,Firefox会将内层`&lt;div&gt;`的`margin-top`值应用于其父元素。这种行为在Internet Explorer 6和7中并不发生,而在IE8以及更现代的浏览器...

    CSS的margin和padding

    尤其是在IE浏览器和其他标准浏览器(如Firefox、Chrome、Opera、Safari)之间,一些特定的`margin`使用情况可能会导致布局显示不一致,比如垂直外边距合并问题。IE的hasLayout渲染模型可能导致某些情况下外边距表现...

    滤镜问题-FireFox火狐浏览器与IE的对比分析

    ### 滤镜问题-FireFox火狐浏览器与IE的对比分析 在Web开发领域,浏览器兼容性一直是开发者关注的重点之一。特别是在早期的Web技术发展中,不同浏览器对标准的支持程度存在较大差异,导致了多种特有的样式和效果实现...

    Ajax仿谷歌自动完成功能(支持Firefox请看下载说明)

    之前未解决兼容火狐的问题, 要兼容火狐请代码中XMLHttp.readystate=4更改为XMLHttp.readyState=4 另var key=lis[i].innerHTML.substring(0,lis[i].innerHTML.indexOf("&lt;SPAN&gt;"));这一行更改为: var key=lis[i]....

    Javascript在IE和FireFox中的兼容处理

    然而,由于不同浏览器的实现差异,特别是Internet Explorer(IE)和Firefox,开发者经常面临兼容性问题。以下是一些关键的JavaScript兼容处理策略: 1. **数组、集合类对象的元素访问** - IE支持`for...in`循环...

    CSS种针对浏览器兼容问题的解决方法

    在计算元素的实际宽度时,IE 和 Opera 使用的公式是 `(margin-left) + width + (margin-right)`,而 Firefox 和 Mozilla 使用的是 `(margin-left) + (border-left-width) + (padding-left) + width + (padding-right...

    CSS浏览器兼容性与解析问题终极归纳[整理].pdf

    在Firefox中,即使没有DTD,它仍会使用标准模式解析,但Internet Explorer(特别是旧版本如IE6)则会触发怪异模式,导致渲染方式与标准模式不同。为了避免这种情况,最佳实践是在文档顶部添加合适的DOCTYPE,如`&lt;!...

    前端兼容问题总结

    - Firefox/Mozilla:`对象的实际宽度 = (margin-left) + (border-left-width) + (padding-left) + width + (padding-right) + (border-right-width) + (margin-right)` - **鼠标手势问题**: - FireFox不支持`...

    javascript下操作css的float属性的特殊写法

    这是因为IE浏览器(尤其是早期版本)使用了不同的语法`style.styleFloat`,而其他浏览器(如Firefox、Chrome、Safari、Opera等)则使用`style.cssFloat`。因此,为了兼容性,我们需要根据浏览器环境来选择正确的属性...

    请不要告诉我你懂css margin

    这种问题在Firefox、Chrome等标准浏览器中尤为明显,而在IE下则表现得较为“正常”。因此,理解并掌握外边距折叠的规则,可以避免这类布局问题。 此外,负margin也是一个强大的工具。虽然负margin可能导致布局变得...

    网页设计盒子.doc

    在不同的浏览器中,盒子模型的解释可能会有所不同,尤其是IE和Firefox。例如,IE的背景色只应用于content和padding,而Firefox还包括了边框。这种差异在设计时需要特别注意,以确保跨浏览器的兼容性。 网站设计除了...

    addRule在firefox下的兼容写法

    对单个元素可以直接 element.style.display=……修改一个样式,也可以 element.className=…修改它的多个样式。 对于多个元素修改样式可以用脚本直接 ...} input{background-color:gray} button{margin-top:70px;

    IE6,IE7,FF等浏览器不兼容原因及解决办法

    - **问题描述**:在Firefox中,如果给容器指定了`height`属性,则容器的实际高度将被限制,即使内部内容超过这个高度也不会自动扩展;而在IE中,这种限制通常是无效的,容器会被内容撑开。 - **解决办法**:为了避免...

    .clear方法解决网页自适应高度的问题

    然而,不同的浏览器对CSS的解析存在差异,比如IE和Mozilla(Firefox)对div的处理方式不同。例如,仅使用`.HackBox{clear:both;}`在IE中可以正常工作,但在Mozilla中无效。因此,为了兼容性,通常会加入`height:0;`...

    CSS如何对齐文本框和其旁边的图像按钮比如搜索框等等

    一个文本框旁边一个按钮是很经常用到的网页内容,比如搜索框等等,而如果旁边的按钮使用图像的话,他们竖直方向就很不容易对齐,即使使用 vertical-align、padding和margin等都不行(特别是在IE中,Firefox中使用...

Global site tag (gtag.js) - Google Analytics