技术开发 频道

九步教你解决IE6的各种疑难杂症

  【IT168 评论】虽然我也很想IE6早点死,但个人的主观能动性毕竟太有限了,我们唯一能做的是用一些手段减轻IE6带来的痛苦。

  1.使用文档类型

  尽量使用最严格的文档类型,确保你的页面运行于标准模式下。虽然用了它们,你可能不能用许多标签,如b,s,font等,但它们都可以用CSS来代替。

  或者最简单的,这是HTML5唯一认可的文档类型,浏览器会自动转换为上面那个。也不要用xhtml的文档声明了,它原本想搞到html成为过渡的产品,殊不知自己才是匆匆的过客。而且用了它,元素的nodeName可能会区分大小写,非常麻烦。

  2.使用position: relative

  在布局中,永远是先考虑定位布局然后才到浮动布局。IE的浮动模型令人狂抓。

  3.使用display:inline

  如果你一定要使用浮动,那请在后面跟紧display:inline。因为IE6存在一个很容易发生的bug。只要对块状容器元素设置了float和与float相同方向的margin值就会出现。如我们给div元素设置了float:left 和 margin-left:100px ,在IE6中就会变成margin-left:200px。

  4.请不要使用注释节点

  这里涉及两个可恶性的东西。一个是多余字符bug,可以参考本博客园的杨正祎(阿一)大大的这篇文章《歌剧院魅影bug 》 。第二个是IE全系列的查找API的bug,document.all,document.getElementsByTagName与document.querySelectorAll都有可能返回注释节点。

  5.悬浮效果记得使用带有href属性的a元素套嵌

  在IE:hover只对a标签有效,而且这标签一定显式设置了href属性。

  6.样式设置中不要使用百分比

  IE在计算百分比时存在问题。

  7.让元素获取hasLayout

  详情请自行google百度这一篇伟大的学术研究《On having layout》。我们可以用el.currentStyle.hasLayout来检测它是否获得layout,一个获得layout的功能较多方法是zoom:1。

0
相关文章