IE6 双倍水平外边距BUG以解决方案

本文探讨了IE6浏览器中出现的双倍水平外边距问题,并提供了详细的解决方案。通过设置display:inline可以有效避免该问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://blog.youkuaiyun.com/hedong37518585/article/details/6638997

出现条件:

1、没有设置display:inline的块元素

2、浮动元素

3、设置了水平外边距(浮动的方向和水平外边距设置的方向一致)

4、元素与父容器之间

备注:因为浮动都有其相对应的对象,只有相对于其父容器的浮动才会出现这样的问题。第一个元素是相对父容器的,而第二个是相对第一个兄弟元素的,所以第二个浮动元素不会出现双倍水平外边距问题。而且只有设置水平外边距的值才会出现双倍外边距,垂直外边距没有关系。

解决办法:给浮动块框设置display:inline解决问题

下面是测试代码:

  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <metacharset="utf-8"/>
  5. <title>IE6双倍水平外边距</title>
  6. <style>
  7. *{
  8. margin:0;
  9. padding:0;
  10. }
  11. .testbox{
  12. background:#CCC;
  13. width:100px;
  14. height:100px;
  15. margin:10px0010px;
  16. float:left;
  17. display:inline;/*去掉display:inline在IE6下看看效果*/
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <divclass="testbox">IE6浮动双倍外边距</div><divclass="testbox">IE6浮动双倍外边距</div>
  23. </body>
  24. </html>


原因分析这个现象仅当块框设置了浮动才会出现,行内框浮动不会出现此问题。因为行内框默认display:inline,给其float后自动就具有块框特性,所以如果是span之类的行内框,浮动后是不需要再单独设置display:inline就可以自动消除双倍水平外边距。

下面是测试代码:

  1. <!DOCTYPEhtml>
  2. <html>
  3. <head>
  4. <metacharset="utf-8"/>
  5. <title>IE6双倍水平外边距</title>
  6. <style>
  7. *{
  8. margin:0;
  9. padding:0;
  10. }
  11. .testbox{
  12. background:#CCC;
  13. width:100px;
  14. height:100px;
  15. float:left;
  16. margin:10px0010px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <spanclass="testbox">IE6浮动双倍外边距</span><spanclass="testbox">IE6浮动双倍外边距</span>
  22. </body>
  23. </html>

总结一下:

如果默认的是块元素例如div之类的,在设置 float 后同时要置display:inline来解决IE6的双倍水平外边距;

如果默认是内联元素例如span之类的,那么浮动后是没有关系的,因其自身居右display:inline,所以不需要再重复添加该属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值