在IE6下使用浮动可能会出现文字重复的情况.

在IE6下,浮动层之间有注释文字的话,之前那个浮动层的内容文字就有可能遭遇一个“隐形”的复制,但是代码里查看文字可并没有多出来。

看个例子:

XML/HTML代码
<!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=“http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=gb2312″ />
<title>多了一只猪</title>
</head>
<body>
<div style=“width:400px”>
<div style=“float:left”></div>
<!– _ –>
<div style=“float:right;width:400px”>↓这就是多出来的那只猪</div>
</div>
</body>
</html>

用IE6看一下,你会发现真的会多出一只“猪”!

问题原因以及解决方法:

原因:
由注释造成文字溢出,属于IE6的BUG,溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。注释坐在位置与溢出位置、区块的浮动以及文字区块的固定宽度有必然联系。

解决办法:
1、不放置注释。最简单、最快捷的解决方法;
2、注释不要放置于2个浮动的区块之间;
3、将文字区块包含在新的<div></div>之间,如:<div style=”float:right;
width:400px”><div>↓这就是多出来的那只猪</div></div>;
4、去除文字区块的固定宽度,与3有相似之处;
5、在后面加一个<br />或者空格;(不推荐)
6、使用IE注释格式,如:<!–[if !IE]>Put your commentary in here…<![endif]–>
7、给盒子加position:relative;属性(本人这次碰到的问题就是用的这个方法在p标签上加了position属性)

引发这种BUG有几个条件
1.是注释引起的,删除所有注释即可.
2.hidden的input直接放在form下.
3.display为none的div也有可能引发此bug.(本人这次碰到的情况!并不是注释引起的)在IE6中,一些隐藏的元素(如注释、display:none;的元素)被包含在一个浮动元素里,就有可能引发文本重复bug。解决办法:给浮动元素添加display:inline;。
2,3可以通过外面再包一次DIV解决

参考下文:转自http://blog.jobbole.com/47676/

HTML代码:
<div>
    <p>
        <span>A</span>
        <span>B</span>
        <span>C</span>
    </p>
</div>

CSS代码:
div {
    width: 100px;
}
 
p {
    margin-right: 1px;
}
 
span {
    float: left;
    width: 120px;
}

设置如下:演示中有一个div元素,有明确的width设置,在这个div中,有一个元素P——此元素有margin-right属性且该值不为0(在IE6中margin不是必需的),且在该P元素内部有三个浮动的子元素,且这三个子元素的width值比外层元素div的width大。我们来看一下在受影响的浏览器中出现了什么情况:最后一个字符“C”——被复制并重新显示在下一行。我已经强调过这里是有三个浮动元素,目前情况就是:如果有少于三个的浮动元素,此bug不会发生,而如果浮动元素数目多于三个,连续浮动元素bug就出现了。

解决方案

下面是针对此bug的解决方案

解决日期

2009 8.18 11:32:52 星期二

修复版本

所有受影响的IE

描述

注意:此方案也适用于针对浮动元素bug的CS解决方案

我们要用IE的bug修复利器去修正该bug。不!我不是在说“layout”,虽然可以通过设置P元素的layout以便IE7下修正该bug(IE6不适用)。来看看现在的页面:

修正后的页面:在单独的页面打开

HTML代码:
<div>
    <p>
        <span>A</span>
        <span>B</span>
        <span>C</span>
    </p>
</div>

CSS代码:
div {
    width: 100px;
}
 
p {
    margin-right: 1px;
}
 
span {
    float: left;
    width: 120px;
    position: relative; /*主要是这行!!*/
}

唯一的区别是:我们在浮动元素span上加了position:relative这个属性,字符C就不会再IE6和IE7中出现”复制”的现象了。

HTML-IE6复制BUG的更多相关文章

  1. IE6兼容性问题及IE6常见bug详细汇总

    转载地址:http://www.jb51.net/css/76894.html 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明&l ...

  2. IE6常见bug整理

    By Diaoyude  | 发布时间: 09-08 09:47  | Hits:1,253 | Post in: WEB前端 , Div-Css 针对IE6常见的一些ie6bug,ie6png,E6 ...

  3. IE6兼容性问题及IE6常见bug详细汇总---转载

    1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定mar ...

  4. HTML-IE6兼容性问题及IE6常见BUG详细汇总

    点评:IE6的兼容性问题一直都是前端工程师的恶梦,为了早早脱离这种困境,本文整理了一些相关兼容性的知识,感兴趣的朋友可以参考下哈,希望可以帮助到你- 1.终极方法:条件注释 <!--[if lt ...

  5. IE6的bug

    借鉴http://css.doyoe.com/ 问题和经验列表,里面应有尽有.写几个常见的: 1.解决IE6及更早浏览器浮动时产生双倍边距的BUG display:inline 2.如何解决IE6下的 ...

  6. IE6常见bug

    1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定mar ...

  7. 前端之旅HTML与CSS篇之IE6常见BUG

    1.IE6怪异解析之padding与border算入宽高原因:未加文档声明造成非盒模型解析解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin ...

  8. IE6基本bug

    一.IE6双倍边距bug当页面上的元素使用float浮动时,不管是向左还是向右浮动:只要该元素带有margin像素都会使该值乘以2,例如“margin-left:10px” 在IE6中,该值就会被解析 ...

  9. ie6/7 bug大全

     1. ie6/7下ul高度变高  li 加 vertical-align:bottom; 2.ie6不支持min-height a:height:auto !important; height:10 ...

随机推荐

  1. Vue学习记录-状态管理

    要解决的问题 平时的系统开发中,基本都会碰到这个权限问题,需要根据用户的登录状态进行处理.最常见的情况就是“先登录,后使用”.除去打包成APP,无法看到连接外,如果地址栏里直接输入地址就能绕过登录的话 ...

  2. iOS开发经验总结——基础工程

    iOS开发经验总结--依赖库 这篇博客,我想说一下开发中经常遇到的一个问题,虚拟个场景描述一下的话,应该是这样的. 项目经理:今天我们正式开始一个新项目,iOSer你负责把苹果端的APP完成,有没有问 ...

  3. innodb_buffer_pool_size=30G

    Starting program: /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/bin/mysqld-debug --user=mysql --data ...

  4. Java:准备学习的高级主题

    ClassLoader GC Concurrent Transaction JTA JPA JDBC JNDI JNI JNA JNative OSGI JMS JSTL EL Servlet NIO ...

  5. PAT 1033. To Fill or Not to Fill (贪心)

    PAT-A的最后一题,最终做出来了... 是贪心,通过局部最优获得全局最优. 1. 将加油站按距离升序排序 2. 记录当前所在的加油站index,存有的汽油,花费.向后遍历全部 该站可抵达的加油站 3 ...

  6. [Android Studio] Android Studio底边栏选项不见了,如何调出来

    转载:http://blog.csdn.net/hyr83960944/article/details/38067785 Android Studio底边有一个选项栏,包含了Run,Android等等 ...

  7. 4 cocos2dx 3.0 源码分析- scheduler

    scheduler 这个类, 负责了引擎的自定义更新, 及定时更新相关的操作, 看看下面的代码,很熟悉吧.   schedule(schedule_selector(HelloWorld::updat ...

  8. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  9. 【Python】Django用户、认证、鉴权模块使用

    此文是总结Django官方网站里面的Document的文章 User authentication in Django http://www.djangoproject.com/documentati ...

  10. 【云计算】OpenStack qcow2镜像如何转化为Docker镜像?

    Import qcow2 image to docker hub 参考资料: https://forums.docker.com/t/import-qcow2-image-to-docker-hub/ ...