虽然说IE8已经来了,并且表现不错。8个小时突破1200W下载,远远地超过24小时下载800W的firefox。但对于整个互联网,IE6仍然是用户最多的浏览器。暂不说IE6怎样,把Web的表现做得更好,既是一种责任,也是一种能力的表现。如果你依然对IE6所出现的种种问题无可奈何,就让我带你来看一下来自SitePoint的 10 Fixes That Solve IE6 Problems,学会这10个方法,你将可以解决大部分IE6出现的问题。

1. 使用 DOCTYPE

你需要在HTML页面的最顶部加上DOCTYPE类型,当然, strict版是值得推荐的,例如:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

或者, XHTML页面的!DOCTYPE:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

你最不想看到的是,IE6进入怪癖模式 – 其实已经够多怪癖了。

2. 设置position: relative

设置position:relative解决了不止一个问题,特别当需要设置对齐的时候。很明显,你需要明白的一点是,绝对定位是相对来说的。说不定,因为你没有设置,而不知道东西都飞到那去了。比如,你设计了每篇文章前都有一张图片,最后,你发现,只有一张图片在页面上,或许,是他们重叠了。

3. 给浮动元素设置 display:inline 值

这源于著名的IE6双倍外边距BUG,例如,你给一个DIV设计了浮动,并且,设置了margin-left:5px;,在IE6中很可能就是margin-left:10px了,这里,给浮动元素设置 display:inline;,即可解决问题。

4. 为元素设置 hasLayout

很多IE6(或IE7)的问题可以用设置hasLayout值的方法来解决。(如果你不知道hasLayout是什么,请看这里)

最简单的给元素设置hasLayout值的方法是给加上CSS 的height或width(当然,zoom也可以用,但这不是CSS的一部分)。设置一个具体的值是推荐的,但有时候并不一定知道高度多少,这里,你可能会用到height:1%。如果父元素没有设置高度,那么元素的物理高度并不会改变,但是,已经具备hasLayout属性。

5. 解决字符重复出现的问题

复杂的布局可能导致一些浮动元素里面的文字,出现在清理浮动位置的下面。这是一个奇怪的问题,下面这此可以帮你解决:

  • 确保浮动元素设置了 display:inline;
  • 在浮动元素中使用 margin-right:-3px;
  • 在浮动元素的最后一个元素后加上一个IE注释,例如: <!--[if !IE]>把你的注释放这里<![endif]-->
  • 在最后的元素中加上一个DIV(这以设置width 为90% 或者其他相似的高度)

UPDATE: 最简单的方法是删除掉所有注释。(感谢恬玮儿的提示,我自己并没有遇到过,不过,google了一下,发现这个方法也可以解决,并且,这是值得推荐的一个方法。)

你可以到positioniseverything.net中查看更多关于这个的解释。

6.只在<a>标签中使用hover,IE6只支持<a>标签显示hover样式

当然,你还是可以通过JS来解决这个方法。但是, 这关于到可访问性的问题。建议不要把重要的内容设置在利用JS来实现的hover中。

7. 使用!important 或高级选择器来区分IE浏览器

比如min-height可以避免使用CSS来实现对IE的兼容。

#element {
min-height: 20em;
height: auto !important;
height: 20em; /* 让IE6显示这个高度 */
}

IE6 并不能正确地识别min-height,可以设置固定的高度,让IE6解析为20em。即使如此,它还是会因为内容的尺寸扩大而改变高度。而另一个方法是使用高级选择器:

#element {
min-height: 20em;
height: 20em;
}
/* 忽略 IE6 */
#element[id] {
height: auto;
}

8. 避免按比例确定的尺寸

比例会让IE6变得错乱,除非你给父元素添加一个确切的高度。不然,给其他的加上!important,例如:

body{
margin: 2% 0 !important;
margin: 20px 0; /* IE6 可读 */
}

9. 尽早测试,经常测试

别忘记尽早测试,经常测试, 除非你的程度已经完成。不然,你可能花更多的时间来解决IE6的问题。一般情况下,如果你的网站能在IE6和firefox下良好表现,估计其他浏览器就不会有什么大问题了。(至少我自己深有体会)

10. 重构你的代码

很多情况下,解决一个问题,可能比重构你的代码要花更多的时间。比如上一次给公司写一个频道页面的,没有一边制作,一边测试IE6的表现,导致最近有很多奇怪的问题,因为布局比较复杂。后来,干脆重构代码。用了2天。我想,如果是想解决方法,或许2天都搞不定。

10个技巧帮你搞定IE 6相关推荐

  1. 中国风PPT不会做?三个小技巧帮你搞定!!!

    PPT常用的风格有商务.欧美.扁平化.小清新.中国风.手绘等等,今天办公资源要和大家分享的是中国风PPT模板的设计技巧.想要在幻灯片中展现中国风,最重要的一点是里面有中国风的元素,简单的就是把符合中国 ...

  2. linux 读取大量图片 内存,10 张图帮你搞定 TensorFlow 数据读取机制

    导读 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解.确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料.今天这篇文章就以图片的形式,用最简单的语言,为大家详细解 ...

  3. a类不确定度计算器_统统帮您搞定:LIMS系统,换版、内审、期间核查、不确定度、数据分析…………...

    CNAS实验室认可ISO17025三年的过渡期,所有获认可实验室应在2020年11月30日前完成新版CL01的转换工作.实验室转换工作的完成以取得依据ISO/IEC17025:2017颁发的认可证书为 ...

  4. python降低图片分辨率_手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定!...

    原标题:手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定! 大数据文摘作品 编译:HAPPEN.于乐源.小鱼 一位乐于分享学生精彩笔记的大学教授对于扫描版的文件非常不满意--颜色不清晰并且 ...

  5. 【干货知识】Redis:从应用到底层,一文帮你搞定

    1.基本类型及底层实现 1.1.String 用途: 适用于简单key-value存储.setnx key value实现分布式锁.计数器(原子性).分布式全局唯一ID. 底层:C语言中String用 ...

  6. 如何删除Word页眉下横线?只需1招即可轻松帮你搞定!

    在我们职场办公时候经常会处理各种Word文档,这时候总会遇到各种类型的问题,就比如页眉下讨人厌的横线,经常为这个莫名其妙的横线而感到头疼,关键它还删除不掉! 针对这个问题,特意为大家整理了几个小技巧, ...

  7. 声音甜美的美女工程师已就位-帮你搞定React面试的疑难杂症 React面试优化教程

    声音甜美的美女工程师已就位-帮你搞定React面试的疑难杂症 React面试优化教程 React早已经是一线大厂前端的必备技术了,那么在前端跳槽过程中能够帮助同学们的加分的就是在面试这个环节了.Rea ...

  8. 一篇文章帮你搞定JVM中的堆

    文章目录 一篇文章帮你搞定JVM中的堆 堆的核心概述 堆的内存细分 设置堆内存大小与OOM OOM(OutOfMemory)举例 年轻代与老年代 图解对象分配过程 MinorGC,MajorGC,Fu ...

  9. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  10. [喵咪的Liunx(1)]计划任务队列脚本后台进程Supervisor帮你搞定

    喵咪的Liunx(1)]计划任务队列脚本后台进程Supervisor帮你搞定 前言 哈喽大家好啊,好久不见啊(都快一个月了),要问为什么没有更新博客呢只应为最近在录制PhalApi的视频教程时间比较少 ...

最新文章

  1. java内部类的权限符,static介绍、内部类、final、权限修饰符的作用范围,
  2. asp实现UNIX时间戳功能
  3. optee内核中malloc函数的原理介绍
  4. Linux -- 进程或线程独占CPU
  5. RESTEasy教程第3部分:异常处理
  6. django集成ansibe实现自动化
  7. EM算法的九层境界:​Hinton和Jordan理解的EM算法
  8. 用 Python 编写一个天气查询应用 pyqt5
  9. 【java学习之路】(java SE篇)014.Stream API
  10. php登录界面模板美化,一款简单好看的登录界面——Typecho美化包 Sign-Page-For-Typecho...
  11. julia 与并行计算(部分有参考和转载)
  12. datatable的数据进行组内排序_极客算法训练笔记(六),十大经典排序之希尔排序,快速排序...
  13. 贝叶斯网络在疾病预测诊断中的应用与优化
  14. 软件产品案例分析----K米app
  15. 多线程小题 —— 设计火车票模拟程序
  16. 利用1stOpt进行方程拟合与参数优化
  17. 要打仗,你手里先得有张地图:数据治理之元数据管理
  18. pcap流量中提取文件的五种方法
  19. littlevgl技术参考手册_树莓派littlevGL系列教程:littlevGL简单了解
  20. 华为硬件工程师社招机考题库_华为硬件工程师笔试题

热门文章

  1. 【语音识别】基于matlab GUI BP神经网络0到10数字语音识别【含Matlab源码 672期】
  2. 【图像分割】基于matlab 2D水平集三维医学图像分割【含Matlab源码 584期】
  3. 【优化布局】基于matlab遗传算法求解带出入点的车间布局优化问题【含Matlab源码 011期】
  4. python中空间的位置怎么放置_python / django,名称空间的根在哪里?
  5. oracle实际是什么意思,Oracle遇到的应用实际教程
  6. java xstream json_详解XML,Object,Json转换与Xstream的使用
  7. spss无法连接到本地计算机,通过远程连接打开SPSS产品时,收到许可证错误信息。从本地打开同一产品时没有错误。...
  8. mysql 复制权限不够_解决不能mysqldump备份权限不够的问题
  9. Linux下多线程查看工具(pstree、ps、pstack),linux命令之-pstree使用说明, linux 查看线程状态。 不指定...
  10. 关于ubuntu下无线网卡经常连不上网络的问题