首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>设计在线>CSS教程>资讯:[分享]我的css hack观点

[分享]我的css hack观点

www.jz123.cn  2009-10-02   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  本文仅针对IE6、IE7以及FF这三种浏览器而写,因为这三种浏览器的市场最大!

  关于CSS Hack,网上有很多种讲法,比较普遍的就是*和_写法!

  用这种写法去区分IE6和IE7以及FF,如

  #abc{background:orange;*background:green;_background:blue;}

  这种写法很简单,但是以上写法,是不能通过W3C的CSS验证的!

  为什么要通过W3C的验证呢?

  一般人都会想:怎么简单怎么写,管它是否通过验证,那重要吗?

  我来回答你:“是的,或许并不重要,但最好能通过验证!”

  在解释原因之前,先让我再说说另外一种HACK的写法,这种写法可以顺利通过校验!如:

  1、当IE6、IE7、FF都不同效果时,用以下HACK:

  #abc{

  background:orange

  }/*标准样式,三种浏览器都能理解*/

  *+html #abc{

  background:green

  }/*IE7独有HACK,只有IE7可以理解,后复盖前,所以IE7会使用这个样式*/

  * html #abc{

  background:blue

  }/*IE6独有HACK,只有IE6可以理解,后复盖前,所以IE6会使用这个样式*/

  2、当IE6不同效果,IE7以及FF相同效果时,用以下HACK:

  #abc{

  background:orange !important;background:blue

  } /*!important有优先作用,并且IE7和FF都能理解这个HACK,所以此样式在IE7与FF下应该解析为橙色,IE6应该解析为蓝色*/

  这种写法就复杂了点!虽然不是复杂很多,但毕竟代码多了一大堆!可这种写法是能通过W3C的CSS校验的!如果不相信的话,可以自己去校验一下!(这是对很多根本不知道HACK可以通过校验的人说的)

  好吧,现在我来解释一下,为什么最好用可以通过校验的HACK写法,使得CSS的代码可以顺利通过校验的原因!

  嗯,我们回头看一下,第一种写法不能通过校验,它也叫HACK,第二种写法可以通过校验,它依然叫HACK!

  那么……请你自己想一下,*和_这两种写法能在浏览器里解析出来,但W3C的校验为什么不给予通过?

  而*+html和* html这两种写法一样能在浏览器里解析出来,可为什么W3C偏偏就让这种复杂的写法顺利通过校验呢?

  呵呵……想到了吧?是的!W3C是支持并且赞同设计师们使用这种HACK的!

  所以,个人认为,我们在平时写HACK的时候,哪怕多打几个代码,还是使用这种能通过校验的HACK好一些!

  IdealBoy

  QQ:7273771


上一篇:合理利用HTML标记优化网页布局 下一篇:CSS下拉菜单

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图