IT技术博客大学习 共学习 共进步

抛弃 CSS Hacks 后的浏览器兼容方案

流金岁月 2012-01-27 18:46:12 浏览 2,964 次

一般情况下的浏览器兼容需要考虑 IE6/7/8 三种 IE 版本,当然在 IE9 开始逐步推向市场后,又会有更多的衍生版本。所以我目前只考虑 IE7~9 版本的兼容情况。涉及到的条件注释代码如下:

<!DOCTYPE html>
<!--[if lt IE 7 ]><html><![endif]-->
<!--[if IE 7 ]><html><![endif]-->
<!--[if IE 8 ]><html><![endif]-->
<!--[if IE 9 ]><html><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html><!--<![endif]-->

使用说明如下:

.test {
    /* 针对非 ie 浏览器的样式 */
}
.ie .test {
    /* 针对所有 ie 版本的样式 */
}
.ie6 .test {
    /* 针对 ie6 的样式 */
}
...
.ie9 .test {
    /* 针对 ie9 的样式 */
}

之前那篇文章里也有同学提出通过 PHP 判断 UA 参数并动态输出样式表的方法,这个虽然是简洁明了,但和后端代码耦合在一起,总觉得不是一回事。况且实际应用中很多情况下会将页面模板化,做动态输出并不非常适合。

另外,国内各大双核高速安全的壳浏览器还没有经过测试,这个需要再做了解。

原文:http://www.mangguo.org/after-abandoning-css-hacks-browser-compatible-solution/

建议继续学习

  1. 浏览器的工作原理:新式网络浏览器幕后揭秘 (阅读 22,826)
  2. 浅析http协议、cookies和session机制、浏览器缓存 (阅读 17,203)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (阅读 15,704)
  4. 浏览器的渲染原理简介 (阅读 8,165)
  5. 程序员眼里IE浏览器是什么样的 (阅读 7,862)
  6. 各种浏览器审查、监听http头工具介绍 (阅读 7,725)
  7. 图说浏览器战争:火狐、微软、谷歌那些事 (阅读 7,342)
  8. 浏览器缓存机制 (阅读 7,100)
  9. [译]Google Chrome中的高性能网络 (阅读 6,501)
  10. 12款很棒的浏览器兼容性测试工具推荐 (阅读 6,142)