常见bug及其修复方法有以下几种

1、双外边距浮动bug

双外边距浮动bug在IE6及更低版本中常见。所谓双外边距浮动bug是指使任何浮动元素上的外边距加倍。(见下图)

只要将元素的display属性设置成inline就行了。因为元素时浮动的,所以将display属性设置为inline实际上不会影响显示方式。但是,这似乎会阻止Windows上的IE6及更低版本将所有外边距加倍。所以每当对具有水平外边距的元素浮动时,都应该很自然的将display属性设置为inline,以备外边距将来被加大

2、3像素文本偏移bug

Windows上IE5和IE6非常常见的bug是3像素的文本偏移bug.当文本与一个浮动元素相邻时,这个bug就会表现出来。例如,将一个元素向左浮动,并且不希望相邻段落中的文字围绕浮动元素。你可能会在段落上应用一个宽度等于浮动元素的宽度的外边距。

.myFloat{
float:left;
width:200px:
}
p{
margin-left:200px;
}

但这样做就会在文本和浮动元素之间莫名其妙出现一个3像素的间隙。一旦浮动元素停下来,3像素就会消失(如下图)。

解决方法是(1)设置一个小的高度并不会影响元素在这些流浪器中的实际尺寸;(2)将外边距重新设置为零;(3)在浮动元素上设置一个负的3像素右边距;

p{
height:1%;
margin-left:0
}
.myFloat{
margin-right:-3px;
}

如果浮动元素是图片时,还需要改变图像的外边距。

/*IE5.x在图像的左右都添加了3像素的间隙,所以需要改变图像的外边距*/
p{
heigth:1%;
margin-left:;
}
img.myFloat{
margin:0 -3px
} /*应用于IE6的样式表*/
p{
height:1%;
margin-left:;
}
img.myFloat{
margin:;
}

3、IE6的重复字符bug

所谓重复字符bug就是在某些情况下,一系列浮动元素的最后一个元素中的最后几个字符会在浮动元素下面重复出现。

当在一系列浮动的元素的第一个和最后一个元素之间有多个注释就会出现这个bug.前两个注释没有影响,但是后续的几个注释会导致两个字符重复出现。3个注释会导致两个字符重复,4个注释会导致4个字符重复,5个字符会导致6个字符重复。

避免这个bug的最容易、最安全的方法是从HTML代码中将注释删除掉。

4、IE6中的”藏猫猫“bug

出现这个bug的条件是:一个浮动元素后面跟着一些非浮动元素,然后是一个清理元素,所有这些元素都包含在一个设置了背景颜色或图像的父元素中。如果清理元素碰到了浮动元素,那么中间的非浮动元素看起来消失了,但其实隐藏到了父元素的背景颜色或图像后面,只有在刷新页面时才重新出现。

解决方法是避免清理元素与浮动元素接触。这里给出三种方法:(1)给容器元素应用特定的尺寸;(2)给容器指定行高;(3)将浮动元素和容器元素的position属性设置为relative;

5、相对容器中的绝对定位

这些bug的原因在于相对定位的元素没有获得IE/Win的内部hasLayout属性。因此,它们不创建新的定位上下文,所有绝对定位元素相对与视口进行定位。

解决方法是需要迫使相对定位的容器拥有布局。一种方法是在容器上显示地设置width和height。(在不知道容器的width和height情况下,或需要这些属性保持灵活的情况下使用。)

另一种方法是为容器设置一个小的高度不影响实际高度。

.container{
height:1%;
}

常见浏览器bug(针对IE6及更低版本)及其修复方法的更多相关文章

  1. SQL Server 2000 sp2 及更低版本不受此版本的 Windows 支持

    SQL Server 2000 sp2 及更低版本不受此版本的 Windows 支持.在安装了 SQL Server 2000 之后请应用 sp3. 出现这种现象的原因在于:Windows Serve ...

  2. 不知还有人遇到这个问题没有:数据库 'xxx' 的版本为 706,无法打开。此服务器支持 661 版及更低版本。不支持降级路径。

    一般情况是要给数据库升级 但我一直在百度看看有没有不动低版本数据库的方法 终于...发现..可能别人发现,但我没查到的 我可以用一个更高版本的数据库打开,然后生成脚本,然后把脚本拿出来

  3. FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法

    FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置 ...

  4. C# 当前 .NET SDK 不支持将 .NET Core 2.1 设置为目标。请将 .NET Core 2.0 或更低版本设置为目标,或使用支持 .NET Core 2.1 的 .NET SDK 版本。

    报错信息: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 NETSDK1045 当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标.请将 .NET Core 2.1 或 ...

  5. HTML5中的语义标签兼容IE8以及更低版本的浏览器

    看某教程,说让HTML5的这些语义标签能够兼容低版本的浏览器,原文是“你可以设置css的display属性为block”.很好理解,就设置css样式为block嘛,那就直接设置咯: header, s ...

  6. 常见浏览器bug以及解决方法

    1.图片下方3像素: (1).描述:在div中插入图片时,图片会将div下方撑大三像素. (2).hack1:将</div>与<img>写在一行上(可以解决ie6/7): (3 ...

  7. 判断IE浏览器的类型以及提示信息(低版本浏览器不予显示)

    //浏览器IE版本判断(function(window) {    var theUA = window.navigator.userAgent.toLowerCase();    if ((theU ...

  8. 当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置

    场景重现 Windows 10 操作系统 (64-bit) 已经安装 .NET Core SDKs 如下: C:\Users\taadis>dotnet --list-sdks 2.1.202 ...

  9. 【Core】当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置

    问题起因: 新的电脑,打开core2.2的项目时,因为没有安装2.2 sdk,项目编译失败 所以在选择目标框架下拉框选择安装其他目标框架 会跳转到官网下载sdk:https://dotnet.micr ...

随机推荐

  1. ubuntu 可能的依赖包,安装过程中根据需要安装

    /*************依赖包安装****************/下面是可能的依赖包,安装过程中根据需要安装 build-essential - libglib2.-dev libpng3 li ...

  2. Winter-2-STL-C Where is the Marble? 解题报告及测试数据

    Time Limit:3000MS     Memory Limit:0KB Description Download as PDF Raju and Meena love to play with ...

  3. sparkSQL——DataFrame&Datasets

    对于新司机,可能看到sc与spark不知道是什么,看图知意 ********************************************************************** ...

  4. SpringBoot入门学习(三)

    基于第二讲,这一讲我们主要讲解包含以下内容 springBoot添加对freemarker的支持 使用@RestController处理ajax请求 使用@PathVariable注解获取url参数 ...

  5. python3_configparser模块详解

    主要介绍python3中的ConfigParser模块的使用,该模块主要被用来读写配置文件. 安装模块:pip3 install configparser root@ranxf:/usr/lib/py ...

  6. 在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT

    对图像处理经常用到DCT, Python下有很多带有DCT算法包, 这里使用OpenCV的DCT做变换, 并简单置0部分数据, 再查看反变换图像的效果. import numpy as np impo ...

  7. MVC 中 注册不成功 或其他操作不成功 提示办法

    在Controller中 .cs public  ActionResult AddUser(User u) { …… try { …… GetInsertUser(u);        //  注册  ...

  8. XML常用标签的介绍

    1.引言 在使用Java时经常遇到使用XML的情况,而因为对XML不太了解,经常配置时粘贴复制,现在对它进行总结,以备以后使用. 2.XML常见的定义 (1)XML(Extensible Markup ...

  9. Spring笔记2——Spring中Bean的装配

    1.引言 Spring中,对象无需自己负责查找或创建与其关联的其他对象,而是由容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间的协作关系的行为通常称为装配(Wiring),这也是依赖注入 ...

  10. c#结构体和字节流之间的相互转换

    结构体转byte数组 1  首先要明白 ,是 在那个命名空间下  System.Runtime.InteropServices; 2  首先得到结构体的大小 2  开辟相应的内存空间 3  将结构体填 ...