IE8下margin-top失效
2012-07-28 10:19
232 查看
今天看了篇清除浮动的文章,自己练习的时候发现在IE8下面div的margin-top设置了根本不起作用。
这样box3的margin-top设置就无效了。
若在box2和box3之间增加一层,并设置style属性
查找网上的解释是:
1)在CSS2.1中,水平的margin不会被折叠;垂直margin可能在一些盒模型中被折叠;
2)当第一个层浮动,而第二个没浮动层的margin会被压缩。
解决思路是:要浮动一起浮动,要就一起不浮动。所以需要在box3中添加float属性。
正常显示如下:
(参考:点击打开链接)
发现网上还提到了另外一种margin-top失效的案例。即子元素的margin-top作用于父元素了。
解决办法如下(参考:点击打开链接):
1)给父元素box1加overflow:hidden;属性
2)父元素box1加border除none以外的属性
3)用父元素box1的padding-top代替margin-top
正常显示结果:
看的也不是很明白为什么这么做就可以,原理是什么?继续研究(*^__^*)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>浮动</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style type="text/css"> body,div{ margin:0; padding:0; } .box1{ background:#900; width:200px; height:200px; margin:20px 0 0 20px; float:left; } .box2{ background:#009; width:300px; height:200px; margin:20px 0 0 20px; float:left; } .box3{ background:#099; width:520px; height:200px; margin:20px 0 0 20px; clear:left; } </style> </head> <body> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> </body> </html>在IE8和FF下显示效果都如下所示:
这样box3的margin-top设置就无效了。
若在box2和box3之间增加一层,并设置style属性
<div class="clear" style="clear:both;"></div>这样FF里面显示正常,但在IE8下面margin-tp还是失效。
查找网上的解释是:
1)在CSS2.1中,水平的margin不会被折叠;垂直margin可能在一些盒模型中被折叠;
2)当第一个层浮动,而第二个没浮动层的margin会被压缩。
解决思路是:要浮动一起浮动,要就一起不浮动。所以需要在box3中添加float属性。
正常显示如下:
(参考:点击打开链接)
发现网上还提到了另外一种margin-top失效的案例。即子元素的margin-top作用于父元素了。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>浮动</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style type="text/css"> body,div{ margin:0; padding:0; } .box1{ background:#900; width:300px; height:300px; } .box2{ background:#009; width:200px; height:200px; margin:20px 0 0 20px; } </style> </head> <body> <div id="" class="box1"> <div id="" class="box2"> </div> </div> </body> </html>结果显示为:
解决办法如下(参考:点击打开链接):
1)给父元素box1加overflow:hidden;属性
2)父元素box1加border除none以外的属性
3)用父元素box1的padding-top代替margin-top
正常显示结果:
看的也不是很明白为什么这么做就可以,原理是什么?继续研究(*^__^*)
相关文章推荐
- IE7、IE8、ff下的margin-top问题 折叠margin
- 浮动元素margin-bottom失效 — IE6盒模型
- margin-top失效原因以及解决方法。
- margin-top失效原因
- margin-top失效
- css2.1中 firefox 与IE 对margin-top的不同解释
- 绝对定义(position:absolute)的相邻元素margin-top在IE6下失效
- margin-top失效及解决办法
- 火狐FF和IE兼容下margin-top无效的解决方法
- CSS中margin-top属性失效问题解决
- margin-top在IE与其他浏览器下的不同
- 两个嵌套的Div,内部Div的margin-top失效
- firefox margin-top失效的原因与解决办法
- IE8下元素背景为透明时,hover事件失效的bug
- IE中margin:auto失效问题
- margin-top失效, css + div 布局之 CSS盒模型 外边距合并问题 问题表述: 那天晚上一个同学给我发来一个问题,原型大概是“一个maindiv嵌套了一个div.class="he
- 盒子嵌套内盒margin-top失效解决方案
- ie下 margin-left失效
- [ie兼容]ie7 margin-bottom失效
- margin-top 失效的问题