本类搜索:

CSS Hack浏览器兼容总结

2010-5-7 13:40:29 作者: allenjen 来源: 金龙网站设计工作室

虽然几乎所有的网页设计高手们都说尽量少用或不用css hack. 由于 Firefox 的崛起和 IE 各个版本的兄弟们各自为政。CSS Hack再次得到网页制作人员的重视. 各种兼容浏览器说起来真还不是什么简单的活。尤其是在这种各个浏览器盛行的情况下。前一段时间也写了两篇关于css hack浏览器兼容的文章div+css浏览器兼容实例二:css hack的理解和“Div+css浏览器兼容实例分析(一)”也一定会对您有帮助的。

目前我的机器上已经安装了 5 款浏览器,现在又来了个IE8, 真叫人惊心动魄. 这不, 以后又多一个标准要兼容了, 对于新的内容想学习,但是无疑给网页设计师们增加工作负担.做了网页设计有一年多的时间,对于css hack兼容问题也一直再研究。同时分享出来希望对初学者会有所帮助.
(一)开发平台的选择
我很幸运, 我接触网页前台的时候 Firefox2 已经十分红火, 我的所有工作都是在 Firefox 上展开, 同时兼容其他浏览器的. 这样做肯定会比在 IE 做好再到别的浏览器兼容来得容易, 因为 IE 对老标准支持还是很不错的, IE 的一些特有功能人家却不支持. 所以我推荐 Firefox 结合 Firebug 扩展作为平台.
(二)css Hack 的顺序
使用 Firefox 作为平台, 只要代码写得够标准, 其实要 Hack 的地方不会很多的, IE 以外的浏览器几乎都不会有问题, 所以可以暂时忽略, 顺序如下:
Firefox -> IE6 -> IE7 -> 其他
(三)Hack 的方法
说到方法有两种, 一种是在不同文件中处理, 另一种则是在同一个文件中处理. 其实作用是相同的, 只是出发点不一样而已.
1. 同一文件中处理.
: id="bgcolor" 的控件要在 IE6 中显示蓝色, IE7 中显示绿色, Firefox 等其他浏览器中显示红色.
IE6 不认 !important, 也不认 *+html. 所以 IE6 只能是 blue.
IE7
!important, 也认 *+html, 优先度: (*+html + !important) > !important > +html. IE7 可以是 red, blue green, green 的优先度最高.
Firefox
和其他浏览器都认 !important. !important 优先, Firefox 可以是 red blue, red 优先度高.
上述的优先符号均是 CSS3 标准允许的, 其他浏览器也还有其他的 Hack 方法, 但我迄今还没遇到过 Firefox 正常, IE 以外的其他浏览器不正常的情况, 所以无可分享. 只要代码规范, 相信这种情况的发生应该是很罕见 (JavaScript 除外).
2. 不同文件中处理.
为什么同一文件中可以处理还要写在多个文件里面针对不同的浏览器? 这是为了欺骗 W3C 的验证工具, 其实只需要两个文件, 一个是针对所有浏览器的, 一个只为 IE 服务. 将所有符合 W3C 的代码写到一个里面去, 而一些 IE 中必须的, 又不能通过 W3C 验证的代码 (: cursor:hand;) 放到另一个文件中, 再用下面的方法导入.
浏览器的 CSS Hack 方法有很多, 比如 @import 引入, > 过滤等等方法, 但以上就是我用过的全部.
网页前台的兼容不应该仅限于对过去的浏览器支持 (向前兼容), 更应该对未来的浏览器服务 (向后兼容). 因为浏览器的发展很快, 而经常上网的人更新软件的频率是非常高的, 所以向后兼容的意义甚至比先前兼容还来得重要. 如何向后兼容呢? 只要符合标准你的网站就永远不会过时 (IE 系列除外).所以我的宗旨是尽量做到标准, 不得已才 Hack, 并尽量使用比较简单的方法去解决.
[在线编辑:allenjen][打印本页][收藏本页][关闭本页]
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。
本类最新
关于我们  |  广告服务  |  版权声明  |  支付方式  |  联系我们  |  建站流程  |  网站导航  |  加入收藏
网站合作、内容监督、商务咨询、投诉建议:13459049164

本站关键词:厦门网站建设,厦门网站设计,赣州网站建设,赣州网站设计,厦门网站建设工作室,厦门网站设计工作室
Copyright©2008-2009厦门金龙网站设计工作室(网站建设)版权所有
赣ICP备08000130号
赣ICP备08000130号