IE6双倍边距在网页布局中是一个很常见的问题,网上关于IE6双倍边距的问题讨论很多,但大多比较笼统,一般认为在块元素(比如div)中同时出现flaot和margin两个样式时就会在IE6中产生双倍边距,写这篇文章的目的,就是把这个问题讨论得透彻一些,让大家明白,到底在什么样的条件下才会出现双倍边距问题。

  以下是源代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>ie6双倍边距</title>
  6. </head>
  7. <body>
  8. <div style="background:red; height:120px;">
  9. <div style="width:100px; height:100px; background:green; margin:10px; float:left;"></div>
  10. <div style="width:100px; height:100px; background:blue; margin:10px; float:left;"></div>
  11. </div>
  12. </body>
  13. </html>

  以下分别是IE6和IE7的显示效果:

IE6显示效果

IE7显示效果

  大家看到了,IE7显示正常,而IE6中绿色背景那个div左边距是20px,蓝色背景那个div显示正常,这说明什么问题呢?

  我们再做个试验,将两个div的float:left改成float:right,以下分别是IE6和IE7的显示效果:

IE6显示效果

IE7显示效果

  大家看明白了吧,下边我们做出结论:

  1、当一个或多个并列的块元素同时应用了margin-left和float:left两个样式,IE6中左边第一个块元素的左边距是设置值的2倍;

  2、当一个或多个并列的块元素同时应用了margin-right和float:right两个样式,IE6中右边第一个块元素的右边距是设置值的2倍;

  3、块元素默认前后都有换行,float的目的是消除块元素的前后换行,让并列的块元素显示在一条线上,当并列的块元素显示在一条线上时,双倍边距只影响左边或右边第一个块元素,而如果因为其他原因(比如宽度超出最大宽度块元素出现换行),双倍边距影响每一行左边或右边第一个块元素。

  IE6中块元素产生双倍边距的原因我们搞清楚了,那么怎么让IE6和IE7及其他浏览器显示一致呢,方法很简单,就是给受双倍边距影响的块元素单独设置样式,_margin-left或_margin-right,其值是正常显示值的一半,这个样式只有IE6可以解释,这样在IE6中产生双倍边距,正好是我们想要的效果。注意这两个样式前的下划线,另外就是这两个样式一定要放在正常样式margin-left和margin-right的下边,因为浏览器解释样式表是从上至下的,如果两个样式有冲突,以下边的样式为准来显示。

IE6双倍边距问题及其解决方法相关推荐

  1. 防止IE6出现BUG的十种常见解决方法

    以下介绍的十种解决方法是针对IE6经常会出现的DIV+CSS布局BUG而使用的一些默认设置,由于IE6的BUG比较多,所以我们制作页面时经常会碰到一些莫名其妙的布局问题,每次碰到问题我们就会查找对因的 ...

  2. 【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳

    1:li边距"无故"增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑 ...

  3. IE6 IE7 IE8 css bug兼容性解决方法总结归纳

    转载自 http://blog.csdn.net/freshlover/article/details/7605207 1:li边距"无故"增加 任何事情都是有原因的,li边距也不 ...

  4. ie6 z-index不起作用的解决方法

    一.概念 z-index伴随着层的概念产生的.网页中,层的概念与photoshop或是flash中层的概念是一致的.熟悉photoshop或是flash的应该知道,层级越高(图层越靠上),越在上面显示 ...

  5. IE6/7 单选按钮 radio 无法选中解决方法

    原文地址:http://blog.sina.com.cn/s/blog_74d6cedd0100ugih.html 今天在做一个页面,居然ff没问题,ie6/7上浏览的时候radio单选按钮不能被选中 ...

  6. 外边距合并及解决方法

    外边距合并 使用margin定义块元素的垂直外边距时,可能会出现外边距的合并. 相邻块元素垂直外边距的合并 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素 ...

  7. IE6下的text-indent属性BUG解决方法

    在ie下.设置了text-indent:-999em;之后再给一堆诸如宽度背景图之类的顺属性,是不会被显示出来的. 加上一句 _display:block;就可以显示了. 具体请看连接~ http:/ ...

  8. IE6的“错误:53 存储空间不足,无法完成此操作”解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 一法: 打开注册表,将"HKEY_CURRENT_USER\Software\Microsoft\Windows\C ...

  9. 浏览器css bug及bug解决方法

    Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...

最新文章

  1. Linux 下获取本机所有网卡 以及 网卡对应ip 列表
  2. 一个程序猿试用有道云笔记VIP功能体验
  3. 2018 SaaS应用大会 掀起SaaS应用新浪潮
  4. 防止stack buffer overflows攻击的方法 : Canary 漏洞缓解机制
  5. spring一站式开发_Spring开发人员知道的一件事
  6. scrapy 工作流程
  7. 送书 | 222Beta多样性限制性排序CPCoA/CCA/RDA/LDA
  8. 使用telnet进行Dubbo接口测试
  9. abcde依次进入一个队列_数据结构与算法 | 一文掌握队列Queue(真题讲解)
  10. Swift的控制转移语句--continue语句
  11. spring 全局变量_Spring 十个错误的使用姿势!
  12. Vagrant (一) - 基本知识
  13. MATLAB 2016a 安装包以及安装破解教程
  14. 两年数据对比柱形图_堆积柱形图+散点图=数据对比完美呈现(附视频)
  15. Spring连环CVE-2015-5211和CVE-2020-5421漏洞升级教程!
  16. Redis面试知识扫盲(面试宝典)
  17. 语音识别(ASR)论文优选:性能测试Wav2Vec2.0 on the Edge: Performance Evaluation
  18. uni-app - 设置最外层容器高度为100%
  19. 用python对数据进行主成分分析、类概念描述及特征化分析-实验报告
  20. discuz gbk php在utf8,Discuz!X2 utf8升级为Discuz!X2.5 GBK 完美解决方案

热门文章

  1. 汽车电气化共享移动性及自动驾驶对未来出行方式的全面展望
  2. 输入两个正整数a,b,求a对b的余数。
  3. C++多线程编程资料清单
  4. 10月区块链领域投融资事件盘点
  5. 小白入门篇:量化大神Eric跟你聊量化交易
  6. 中文文本处理总结(读取文本、文本预处理、分词、去除停用词)
  7. 未来站在中国这一边(读后感)
  8. 流畅的python 14章可迭代的对象、迭代器 和生成器
  9. 2020牛客暑期多校训练营(第八场)I.Interesting Computer Game并查集
  10. 十个小贴士!帮你节省编程时间、减少挫败感