常见浏览器bug(针对IE6及更低版本)及其修复方法

常见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:0;
}
img.myFloat{
margin:0 -3px
}

/*应用于IE6的样式表*/
p{
height:1%;
margin-left:0;
}
img.myFloat{
margin:0;
}

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%;
}
时间: 2024-10-26 06:32:12

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

数据库 的版本为 661,无法打开。此服务器支持 655 版及更低版本。不支持降级路径。

“数据库 的版本为 661,无法打开.此服务器支持 655 版及更低版本.不支持降级路径” 出现这样的问题,一般是因为数据库版本不同造成的. 我们可以用下面的语句查询数据库的版本 use master select @@VERSION (1)661是sql2008 R2的版本号     Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)   Apr  2 2010 15:53:02   Copyright (c) Micro

此服务器支持661版及更低版本。不支持降级路径。

此服务器支持661版及更低版本.不支持降级路径. 环境: SQL Server 2008 R2. 问题: 附加数据库报错"此服务器支持661版及更低版本.不支持降级路径." 解决方案: 出现这样的问题,一般是因为数据库版本不同造成的. 查询数据库版本语法: use master select @@VERSION 661是sql2008 R2的版本号--    Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)  

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

FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置FDPhysSQLiteDriverLink1的ODBCDriver为“SQL Server”,这样FIREDAC将通过ODBC的方式连接上MSSQL2000数据库.

iis System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。”解决方法

今天事情特别多, 电话不断, 但事情得一件一件的做. 在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服务器调试和部署会报错! IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本. 出错的原因: 1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oracle\bin文件夹的权限 2.在 Windows Server 2003/2008 的

基于.net4.0或者更低版本的INotifyPropertyChanged接口测试

如何在VS2013或更低版本中使用EntityFramework6.x连接mysql

在这就不多说entityframework相比ADO的各种利弊了.文笔不好请见谅. 近日使用entityframework6.0连接mysql,遇到各种问题,在百度谷歌上有许多帖子但是均无法解决情况.所以发一帖子提供完整可行的解决方案. 一,实体数据模型创建向导中出现MysqlDatabase: 1:安装MySQL for Visual Studio 1.1.1(含以上版本) 2:安装MySQL Connector Net 6.8.3(含以上版本) 3:安装Nuget包管理器,在vs的拓展功能中

浏览器bug和修复2

拥有布局 Window IE上的bug要比其他浏览器多,原因之一是,IE的显示引擎使用一个称为布局(layout)的内部概念.因为布局是专门针对显示引擎内部工作方式的概念,所以一般情况下不需要了解它,但是,布局问题是许多IE/Win显示bug的根源,所以理解这个概念以及它如何影响CSS是有帮助的. 什么是布局 Windows上的IE使用布局概念来控制元素的尺寸和定位.那些称为拥有布局(have layout)的元素负责本身及其子元素的尺寸和定位.如果一个元素没有拥有布局,那么它的尺寸和位置由最近

IE常见bug及其修复方法

    一.双边距浮动的bug 1.1一段无错的代码把一个居左浮动(float:left)的元素放置进一个容器盒(box) 2.1在浮动元素上使用了左边界(margin-left)来令它和容器的左边产生一段距离 在ie6或更低版本中产生双倍外边距 修复方法 在浮动元素上添加display:inline属性即可     二.3像素文本偏移bug 2.1 一段文本与浮动元素相邻的时候,会出现图文环绕,为了不让其文本环绕左边floatBox浮动盒子,我们设置段落外左边距margin-left为floa

CSS中常见的BUG调试

1.布局--layout 布局是windows提出的概念,用于控制元素的尺寸和定位. 拥有布局的元素负责自身及其子元素的尺寸及定位,而没有布局的元素仅仅能依靠近期的祖先元素进行控制. 通常在IE6中出现的BUG.非常可能是由于布局的缘故而产生的,因而修复IE中BUG的时候,第一件事就是尝试通过规则迫使元素拥有布局来看是否能修复. 默认情况下拥有布局的元素包含:body.html(标准模式下).table.tr.td.img.hr.input.select.textarea.button.ifra