`

IE6双倍内外边距解决方案

阅读更多

IE6下双倍内外边距Bug的处理办法

【注意】

双倍内边距表现为宽高都*2,而双倍外边距则表现为宽*2,即水平外边距*2

 

(1)先来讲下双倍内边距padding

ie6的padding属性hack,padding属性在ie6下的hack!

【问题】在ie6下使用padding的话,数值乘2倍增长

【方案】只能用!important来调整!

例如x容器样式是这样

.x{width:100px;height:100px;padding:50px;}

问题具体表现为:在IE7\8,firefox,chrome等主流浏览器中,它的总占据的宽度和高度是200X200,而在IE6中,则是300X300

要调整兼容性,利用!important关键字!

样式写成

.x{width:100px;height:100px;padding:50px !important;padding:25px;}

 除了IE6以外,其他浏览器都支持!important关键字属性的优先!

【注意】

      要使用!important的话,把优先的属性写前面,就像上面一样!这样在代码读取顺序的时候,除IE6以外的浏览器读取到了!important关键字的属性,后面的相同属性就不再读取,而IE6不支持!important,所以IE6只能读取!important后的属性!

     另外:在ie6下浮动了的容器里使用margin-left或right,数值也是乘2倍增长。下面我们就来说下双倍外边距的BUG

    

(2)水平双倍外边距margin

先来看下问题

<!DOCTYPE html>  
<html>  
    <head>  
    <meta charset="utf-8">  
    <title>IE6下的双倍Bug解决方法</title>  
 <style type="text/css">  
.div1{  
    height: 200px;  
    width: 200px;  
    border: 1px solid red;  
    float: left;    
    margin: 30px;  
}  
 </style>  
</head>  
<body>  
<div class="div1">浮动DIV</div>  
</body>  
</html>  

  代码运行显示效果:

 

 加上display:inline;后表现为

【问题】

说实话,这个原因还真是不清楚。但是这样的结果确确实实在IE6中出现了。

而且这种情况出现的条件是当浮动元素的浮动方向和浮动边界的方向一致时才 会出现。如同上面的例子一样,元素向左浮动并且设置了左侧的外边距出现了这样的双边距bug。同理,元素向右浮动并且设置右边距也会出现同样的情况。同一 行如果有多个浮动元素,第一个浮动元素会出现这个双边距bug,其它的浮动元素则不会

【解决方案】

只需要给浮动元素加上display:inline;这样的CSS属性就可以了

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

【IE6双倍边距Bug触发条件】

①:是块元素;

②:有左/右浮动;

③:有左/右外边距

详细总结条件就是:

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

2、浮动元素

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

4、元素与父容器之间

 

【总结】 

①只有设置水平外边距的值才会出现双倍外边距,垂直外边距没有关系;

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

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

 

 

.

分享到:
评论

相关推荐

    IE6双倍边距 IE6浏览器会出现双倍边距解决方法

    所谓的IE6双倍边距就是指当元素有float属性,又有margin属性时,在IE6下面显示的margin的值是设置值的两倍。下面的代码: 折叠展开XML/HTML Code 复制代码代码如下: &lt;div xss=removed&gt; &lt;div xss=removed&gt;&lt;/div&gt; ...

    IE6的双倍边距和火狐自适应高度

    css兼容

    IE6下出现双倍margin的解决方法

    IE6下出现双倍margin的解决方法,IE6下出现双倍margin的解决方法

    margin值在IE6变成双倍

    margin值在IE6变成双倍 margin值在IE6变成双倍 margin值在IE6变成双倍

    关于IE6 双倍间距的真正原因

    NULL 博文链接:https://helloklzs.iteye.com/blog/1305519

    IE6盒子模型没问题 详测双倍边距

    前两天看的《IE6 很邪恶,但我爱它的盒子模型》,我说盒子模型如何如何,面试官告诉我IE5的盒子模型有问题,不是IE6。 回来查查书,《Web标准实战》上说了,是IE5/Win的盒子模型有问题。看来CSS还是不够精通。 特...

    IE6的双倍,3px,注释引起的文字错位等几个BUG解决方法

    2、IE6双倍浮动BUG及解决办法 比如 复制代码代码如下: #div1 { float:left; margin-left:10px; width:200px; height:200px; border:1px solid red } 左margin边界设定为了10px,然后IE6却偏偏给你显示成双倍的20...

    web前端开发基本问题解决

    IE6的双倍边距BUG IE6下绝对定位的容器内文本无法正常选择的问题 IE6下为什么图片下方有空隙产生 IE6下这两个层中间怎么有间隙 list-style-image无法准确定位的问题 LI中内容超过长度后以省略号显示的方法 web标准中...

    网页设计师DIV+CSS面试宝典

    本文总结了网页设计师DIV+CSS面试中常见的问题和解决方法,涵盖了超链接点击后 hover 样式的消失、IE6 的 margin 双倍边距 bug、火狐浏览器下文本无法撑开容器的高度、中火狐浏览器下文本无法撑开容器的高度、Web ...

    自己整理div+css网页标准版式布局(50种布局方式)

    大四了,把之前学的些东西整理整理分享给大家,适合老师网页设计教材及初学者,里面包含了以下内容: 1、固定宽度CSS版式布局 2、自适应(弹性)宽度CSS版式布局 ... IE6双倍边距bug 4、盒模型层次平面示意图和3D示意图

    VMware服务器虚拟化解决方案.doc

    VMware虚拟化解决方案 一、项目研究内容 1.1 虚拟化的应用 随着企业的成长,IT部门必须快速地提升运算能力-以不同操作环境的新服务器形式 而存在。因此而产生的服务器数量激增则需要大量的资金和人力去运作,管理和...

    IE Bug--浮动对象外补丁的双倍距离的解决方法

    IE Bug--浮动对象外补丁的双倍距离的解决方法

    IE6常见bug附解决方法

    doctype html&gt; 2、IE6在块元素、左右浮动、设定marin时造成margin双倍(双边距)解决方法:display:inline 3、以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9...

    惠普多座席共享解决方案

    HP多座席共享计算解决方案简单易行、价格经济,在帮助用户以同样的预算实现双倍PC体验,有效扩展计算资源。 借助HP多座席共享计算解决方案和Windows:registered: MultiPointTM Server2010,教育客户将充分体验到...

    c#3DES双倍长加密解密

    c#的3DES加密解密强制要求不能使用简单的密钥,这里按照3DES双倍长的算法原理,实现双倍长的加密解密

    前端面试题汇总1

    1.就是 ie6 双倍边距的问题,在使用了 float 的情况下,不管是向左还是向 2.文字本身的大小不兼容 3. ff 下容器高度限定,即容器定义了 heig

Global site tag (gtag.js) - Google Analytics