CSS IE7 IE6 Firefox多浏览器兼容(二)
Hack和过滤器其实是一种迫不得已的办法,不要稍微掌握了几招然后就开始炫耀,到处乱写,虽然能够达到你的最初目的。不要到了完工的时候看一看你的CSS文件似乎到处是Hack,到处都是补丁,似乎已经为每个浏览器都量身定做了一遍CSS。在使用hack和过滤器的时候其实更应该多理解CSS的标准规范,实际上要用到hack的情况是很少的。Hack本身一词也是不包含正面意义的,而是讲这是一种迫不得已的行为,是利用了不正确的浏览器行为。
作为一般规则,使用以来与不支持的CSS的过滤器,而不是依赖于某种浏览器bug的过滤器,这可能比较安全。
对比相对高级的浏览器应用规则和生命,同时可以确定老式的浏览器会平稳的退化。当浏览器新版本发布时候,如果它现在支持你作为过滤器使用的CSS,那么它应该会如预期那样工作。因为浏览器会越来越符合标准,如果使用比较高级的CSS克服老式浏览器中的问题,这个问题很有希望在新的版本中得到解决。因此,使用不支持的CSS作为过滤机制是一种相对安全的方法。之所以说“相对”是因为浏览器有可能支持新的CSS,但是仍然表现出你试图修复的Bug。
因为使用依赖于解析bug的过滤器是一种有点冒险的方法。这是因为依赖于bug而不是特性。与前面的方法相似,如果解析bug被修复了,而你试图修复的bug还没有得到解决,那么可能会遇到问题。但是,更严重的是,解析bug在浏览器的新版本中可能有新的表现形式。例如,假设Firefox的一个新版本有某个解析bug。如果使用这个bug作为过滤器向IE提供不同的宽度值,从而解决专用框模型的问题,那么Firefox有可能突然继承这个宽度,这可能会破坏许多站点的设计。
在CSS中,有许多方法可以实现同样的效果,所以如果某些东西造成了问题,那么可以尝试另一种方法。许多CSS错误是由过分复杂的代码和标记造成的。如果使代码保持简单了,那么可以避免使用大多数招数。
那么应该使用怎样的策略保证一个网站的CSS简单明了,而且又能适应众多浏览器呢?如果经过充分的思考,认识到只能应用某种Hack或过滤器,那么需要以明智且受控制的方式应用它。如果CSS短小而且简单,并且只需要应用很少几个Hack,那么将这些Hack放在主CSS文件中可能是安全的。但是,Hack往往相当复杂,使代码更加难懂。如果CSS文件很长,或者需要使用的招数比较多,那么最好将它们放在它们自己的样式表中。这补单使代码容易阅读,而且如果Hack在新的浏览器中造成了什么问题,那么可以准确的知道它的位置。与此相似,如果决定取消对某种浏览器的支持,那么只需要删除适当的CSS文件,就可以删除相关联的Hack。或者用程序判断浏览器信息,然后链接相应的CSS文件。或者可以用条件注释(见下一篇)。
为了帮助你正确的选择过滤器或者Hack,推荐这个站点(http://centricle.com/ref/css/filters/)。这个站点提供了表格来描述那些过滤器在那些浏览器中是有效的。
发表评论
- 浏览: 14858 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
神秘职业4年赚百万美金-( ...
说什么了???????
-- by zlt820107 -
iPhone Icon (一)超经典 ...
没下也留个言
-- by kaipingk@gmail.com






评论排行榜