hack规范

  • 尽可能的减少对Hack的使用和依赖,如果在项目中对Hack的使用太多太复杂,对项目的维护将是一个巨大的挑战;
  • 使用其它的解决方案代替Hack思路;
  • 如果非Hack不可,选择稳定且常用并易于理解的。
  1. .test {
  2.    color: #000; /* For all */
  3.    color: #111\9; /* For all IE */
  4.    color: #222\0; /* For IE8 and later, Opera without Webkit */
  5.    color: #333\9\0; /* For IE8 and later */
  6.    color: #444\0/; /* For IE8 and later */
  7.    *color: #666; /* For IE7 and earlier */
  8.    _color: #777; /* For IE6 and earlier */
  9. }
  • 严谨且长期的项目,针对IE可以使用条件注释作为预留Hack或者在当前使用

IE条件注释语法:

  1. <!--[if <keywords>? IE <version>?]>
  2. <link rel="stylesheet" href="*.css" />
  3. <![endif]-->

语法说明:

  1. <keywords>
  2. if条件共包含6种选择方式:是否、大于、大于或等于、小于、小于或等于、非指定版本
  3. 是否:指定是否IE或IE某个版本。关键字:空
  4. 大于:选择大于指定版本的IE版本。关键字:gt(greater than)
  5. 大于或等于:选择大于或等于指定版本的IE版本。关键字:gte(greater than or equal)
  6. 小于:选择小于指定版本的IE版本。关键字:lt(less than)
  7. 小于或等于:选择小于或等于指定版本的IE版本。关键字:lte(less than or equal)
  8. 非指定版本:选择除指定版本外的所有IE版本。关键字:!
  1. <version>
  2. 目前的常用IE版本为6.0及以上,推荐酌情忽略低版本,把精力花在为使用高级浏览器的用户提供更好的体验上,另从IE10开始已无此特性