问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在IE下用margin-top值很正常,在火狐下看margin-top值很大,怎么解决呢

发布网友 发布时间:2022-05-14 08:11

我来回答

4个回答

懂视网 时间:2022-05-14 12:32

为什么要翻译这篇说明?css2本有人已翻译过,但看一下,很粗糙(不是说自己就怎么怎么样啊,翻译者真的是很值得敬佩的!),近来跟css与xhtml接触得越来越多,但接触得越多,迷惑却总不见少。
现在我觉得很多问题根本不能称之为问题,原因就在于我们的草率理解,比如杀鸡用牛刀,不是不可以,是不合理、不恰当,根源错了,表象也就会错了,如果解决问题从表象入手,难免总会摸不着头脑,还是那句话,要脚踏实地,切莫浮躁。
在这个说明中,“collapsing margins”(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容、 padding区域、border边框或使用清除分离方法)结合表示为一个单独的margin。
在css2.1中,水平的margin不会被折叠。
垂直margin可能在一些盒模型中被折叠:
1、在常规文档流中,2个或以上的块级盒模型相邻的垂直margin会被折叠。
最终的margin值计算方法如下:
a、全部都为正值,取最大者;
b、不全是正值,则都取绝对值,然后用正值减去最大值;
c、没有正值,则都取绝对值,然后用0减去最大值。
注意:相邻的盒模型可能由DOM元素动态产生并没有相邻或继承关系。
2、相邻的和模型中,如果其中的一个是浮动的(floated),垂直margin不会被折叠,甚至一个浮动的盒模型和它的子元素之间也是这样。
3、设置了overflow属性的元素和它的子元素之间的margin不会被折叠(overflow取值为visible除外)。
4、设置了绝对定位(position:absolute)的盒模型,垂直margin不会被折叠,甚至和他们的子元素之间也是一样。
5、设置了display:inline-block的元素,垂直margin不会被折叠,甚至和他们的子元素之间也是一样。
6、如果一个盒模型的上下margin相邻,这时它的margin可能折叠覆盖(collapse through)它。在这种情况下,元素的位置(position)取决于它的相邻元素的margin是否被折叠。
a、如果元素的margin和它的父元素的margin-top折叠在一起,盒模型border-top的边界定义和它的父元素相同。
b、另外,任意元素的父元素不参与margin的折叠,或者说只有父元素的margin-bottom是参与计算的。如果元素的border-top非零,那么元素的border-top边界位置和原来一样。
一个应用了清除操作的元素的margin-top绝不会和它的块级父元素的margin-bottom折叠。
注意,那些已经被折叠覆盖的元素的位置对其他已经被折叠的元素的位置没有任何影响;只有在对这些元素的子元素布局时,border-top边界位置才是必需的。
7、根元素的垂直margin不会被折叠。
浮动的块级元素的margin-bottom总是与它后面的浮动块级兄弟元素(floated next in-flow block-level sibling)的margin-top相邻,除非那个同级元素使用了清除操作。
浮动的块级元素的margin-top和它的第一个浮动块级子元素(floated first in-flow block-level child)的margin-top相邻(如果该元素没有border-top,没有padding-top,并且子元素没有使用清除操作)。
浮动的块级元素的margin-bottom如果符合下列条件,那么它和它的最后一个浮动块级子元素的margin-bottom相邻(如果该元素没有指定padding-bottom或border):
a、指定了height:auto
b、min-height小于元素的实际使用高度(height)
c、max-height大于元素的实际使用高度(height)
如果一个元素的min-height属性设置为0,那么它所拥有的margin是相邻的,并且它既没有border-top和border- bottom,也没有padding-top和padding-bottom,它的height属性可以是0或auto,它不能包含一个内联的盒模型(line box),它所有的浮动子元素(如果有的话)的margin也都是相邻的。
当一个元素拥有的margin折叠了,并且它使用了清除操作,那么它的margin-top会和紧随其后的兄弟元素的相邻margin折叠,但结果是它的margin将无法和其块级父元素的margin-bottom折叠。
折叠操作是以padding、margin、border的值为基础的(即在浏览器解析所有这些值之后),折叠后的margin计算将覆盖已使用的不同margin的值。
代码如下:



//不加入br这一行,在FIREFOX中id1的margin-top:20px将会在d0上作用,使d0上方与body间有20px的间距,d1与d0的上方没有间距,而IE内正常显示



热心网友 时间:2022-05-14 09:40

  您好!很高兴为您答疑。
  您所描述的问题其实是该属性跨浏览器兼容的问题。因为ie和火狐对margin-top属性值的解读存在差异,而火狐严格遵循W3C标准,故最终导致该属性在IE和火狐下,同值状态下显示存在差异。解决此问题的最佳办法是使用hack。
  参考样例:
  margin-top:8px !important;
>margin-top:3px !important;
margin-top:3px;
  如果对我们的回答存在任何疑问,欢迎继续问询。

热心网友 时间:2022-05-14 10:58

不是IE正常,是IE不正常,FF是遵循W3C的标准的,而MS玩的是自己的标准,在Margin问题上,IE和FF不统一,主要是在IE6上,如果想做兼容,就用JS做浏览器判断,然后根据浏览器做不同的值设置

热心网友 时间:2022-05-14 12:33

.a2{width:300px;height:300px; position:relative;border:1px solid #ddd;margin-top:10px;margin-left:10px;} .b1{width:200px;height:200px;left:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工会主席权限 魅族坏了怎么办 网上买的魅族手机坏了可以保修吗?自己弄坏的,手机花屏,修要多少钱... 从梁溪路公益路公交站到建筑路夏联福记酒店坐什么公交最方便? 退货保和运费险有什么不同 现代Logo设计趋势是什么 优秀的logo设计有什么特征? 哪些品牌的鱼竿质量好 光威悟法师和达瓦一击哪个好 有人了解大卫地板吗?怎么样呢? 非柜面支出额度是什么意思 非柜面支出限额5000怎么解除 当年累计支付金额超过非柜面交易年限额是什么意思 非柜面交易限额如何更改 非柜面交易限额10000 360n全网通真的出了吗 非柜面支付日累计限额2000什么时候可以在用 360 N4全网通怎么失灵了,是怎回事? 信用社非柜面交易限额1000 360全网通手机 怎样鉴别铁观音茶的品质呢? 没有引力的太空中,子弹能飞多远? 《宇宙小子》(美国cn动画)里的这两个人叫什么来着,只出现一集。 佛家怎样认识比夸克更小的宇宙粒子? 太空育种的原理是什么 月亮上为什么有太空黑子 研究各种宇宙粒子到底有什么作用? 太空莲子不饱满是什么原因 太空粒子束武器的原理是怎样的? 中国航天员在太空时,也会吃太空粽子,太空粽子长什么样? 高级笔译和初级笔译区别 三级笔译能接活儿吗? 证券开户怎么收费? 有人在快手评论你生活中的不期而遇都是你努力之后的惊喜怎么回复他? 邯郸市丛台区新清网络科技有限公司怎么样? 邯郸市丛台区梦玲企业管理咨询有限公司怎么样? 河北佰利工贸有限公司邯郸丛台分公司怎么样? 二百颗磁力珠能拼成什么 邯郸市丛台区六善堂生物科技有限公司怎么样? 邯郸市丛台区景然新能源科技有限公司怎么样? 邯郸市丛台区拓凯贸易有限公司怎么样? 邯郸市丛台区圆梦网络科技有限公司怎么样? 邯郸市丛台区坐标工业设计服务有限公司怎么样? 邯郸市丛台区乐糖网络科技有限公司怎么样? 邯郸市丛台中大酒类销售有限公司怎么样? 邯郸市丛台区伟连贸易有限公司怎么样? 邯郸市丛台区博冠企业管理咨询有限公司怎么样? 邯郸市丛台区勤奋贸易有限公司怎么样? 邯郸市丛台区楠瓜网络科技有限公司怎么样? 邯郸市丛台区松颉贸易有限公司怎么样?