解决IE6兼容性问题的十大技巧

开发 前端
关于IE6兼容性问题有很多值得学习的地方,本文就向大家介绍一下解决IE6兼容性问题的十大技巧,希望对你的学习有所帮助。

本文和大家重点讨论一下十大要点解决IE6兼容性问题,相信通过本文的简单介绍你对IE6兼容性有更深一步的认识,欢迎大家一起来学习IE6兼容性。

10要点解决IE6兼容性问题

1、使用声明

你必须经常在html网页头部放置一个声明,推荐使用严格的标准。例如

  1. <!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN”  
  2.  
  3. "http://www.w3.org/TR/html4/strict.dtd”> 
  4. or,forXHTML:  
  5. <!DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.0Strict//EN”  
  6.  
  7. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> 

***你需要是IE6进入兼容模式,这已经足够兼容了。

2、使用position:relative

IE6兼容性问题解决方案二:使用position:relative。设置一个标签position:relative可以解决很多问题,特别是曾经有过看不见的经历或者奇怪布局的框架。明显的,你需要小心,绝对位置放置的子元素是否都参照找到新位置。

3、为浮动元素使用display:inline

浮动元素会有一个著名的IE6双边距marginbug。假如你设置了左边距5px但实际上得到了10px左边距。display:inline可以解决这个问题,尽管它不是必需的,但是css仍然有效。

4、设置元素启动hasLayout

大部分IE6(IE7)的渲染问题都可以通过起来元素的hasLayout属性来兼容。这是IE内置的设定,确定一个内容块相对其它内容块是有界限和位置的。当你需要设置一个行内元素例如一个连接变成块状元素或者是透明效果,设置hasLayout也是必须的。

5、修复重复字符的bug

复杂的布局会触发一个bug:浮动对象的***字符会出现在已经清除浮动的元素后面。这里有几种解决的办法,部分是理想的,并且一些测试和出错是必须的。
a、确保浮动元素都使用:display:inline;
b、***一个浮动元素使用margin-right:-3px;
c、在浮动对象***一个元素后使用一个条件注释。例如<!—>这里输入注释…<![endif]
d、在容器内的***使用一个div空标签(它也必须设置90%宽度甚至更小)

6、使用a标签完成可点击和hover原理

IE6只支持a标签的css定义hover效果
你可以使用它去控制javascript启动的widgets,使得他们仍然保持键盘操作。这里有个二择一的问题,但是a标签是所有解决方案中最可靠的。

7、使用!important,或是高级选择符替代IE特定代码

IE6兼容性问题解决方案七;:使用!important。在外置的css文件里,放弃凭借传统的hacks和条件判断,使用有效的css代码去针对IE6仍然是有可能的。例如:最小高度可以使用一下定义。
 

  1. #element{  
  2. min-height:20em;  
  3. height:auto!important;/*understoodbyallbrowsers*/  
  4. height:20em;/*IE6incorrectlyusesthisvalue/*  

IE6不支持“min-height”并且错误的将20em重写为“auto”。不过,当内容大于设置的空间时,它会增加它的尺寸。
另外一个选择是使用高级选择符。例如

  1. #element{  
  2. min-height:20em;  
  3. height:20em;  

8、避免百分比定义

百分比在IE下比较混乱。除非你非常小心每个父元素的尺寸,这样就大概可以***避免了。你仍然可以对其他浏览器使用!important来使用百分值。例如:
 

  1. body{  
  2. margin:2%0!important;  
  3. margin:20px0;/*IE6only*/  

9、早点和经常测试

在你的网站和应用程序完成之前,不要放弃IE6的测试。问题将会更加严重并且需要很长时间去修复。如果你的网站可以运行于firefox和IE6,它将差不多肯定可以在其它浏览器下运行。

10、重构你的代码

IE6兼容性问题解决方案十:重构代码。经常的,修复会比重新考虑布局问题更加花费时间。Html细微的修改和更加简单的css经常是最有效的。这意味着你要放弃***的合法的代码,但是将会更少的问题出现,并且你知道怎样处理将要出现的情况。

  1. /*ignoredbyIE6*/  
  2. #element[id]{  
  3. height:auto;  

代码部分试了下语法着色,貌似有点乱了,这里是英文原文的链接:http://www.sitepoint.com/blogs/2009/03/06/10-fixes-for-IE6-problems/

【编辑推荐】

  1. IE6 IE7 IE8浏览器的兼容性PK
  2. 学习笔记 IE8兼容代码用法解析
  3. IE6 IE7 IE8 FF浏览器的CSS兼容问题探究
  4. 微软发布升级版IE8Beta2浏览器 新特性敬请关注
  5. 技术前沿 DIV+CSS布局网页对网站SEO的影响

 

责任编辑:佚名 来源: javaeye.com
相关推荐

2010-08-18 13:13:04

CSS兼容性IE6

2010-08-26 08:55:08

IE6CSS兼容性

2010-08-18 09:24:09

IE6兼容性

2010-09-16 10:50:55

CSS兼容IE6

2010-08-19 16:06:15

2010-08-17 16:50:30

JSIE6IE8

2010-09-15 11:32:37

IE6IE7浏览器兼容性

2010-08-18 09:01:47

IE5IE5.5IE6

2010-08-18 14:14:41

IE6IE7FF

2010-08-11 14:32:51

IE6CSS

2010-10-09 15:22:25

IE7.JS

2010-09-15 10:14:19

IE7IE8兼容CSS

2010-09-15 10:32:54

IE8兼容

2010-08-17 14:22:51

IE8兼容性

2010-08-18 09:45:54

IE6IE7兼容性

2010-08-17 15:33:28

CSS兼容IE7IE8

2010-09-15 09:21:11

IEirefoxJavascript

2010-09-06 15:06:29

IE6IE7Firefox

2010-08-23 09:23:48

IEFirefox兼容性

2010-09-15 11:26:05

IE火狐CSS兼容性
点赞
收藏

51CTO技术栈公众号