Hack

条件Hack

有时候我们只想在某个特定的条件下执行某个特定的代码,这时候就可以使用 CSS 提供的 Hack。Hack 就是指的一段特殊代码,它只在某些特殊的浏览器中使用。条件 Hack 只在 IE 中有效,其它浏览器都会将它解析为注释。但是,只有 IE10 及其以下的浏览器才有效。

<!-- 在 IE10 及以下的浏览器中执行 -->
<!--[if IE]>
  <p>IE 浏览器</p>
<![endif]-->

<!-- 只在 IE6 中执行 -->
<!--[if IE 6]>
  <p>IE 浏览器</p>
<![endif]-->

<!-- 只在 IE9 以下的浏览器中执行 -->
<!--[if lt IE 9]>
  <p>IE 浏览器</p>
<![endif]-->

<!-- 只在 IE9 及以下的浏览器中执行 -->
<!--[if lte IE 9]>
  <p>IE 浏览器</p>
<![endif]-->

<!-- 只在非 IE9 的浏览器中执行 -->
<!--[if ! IE 9]>
  <p>不是 IE9 浏览器</p>
<![endif]-->

属性 Hack

在 CSS 中使用 Hack。

body {
  /* _ 表示只在 IE6 及以下的有效 */
  _background:"green";
  /* * 表示只在 IE7 及以下的有效 */
  *background:"green";
  /* \9 表示只在 IE6 及以上的有效 */
  background:"green\9";
  /* \0 表示只在 IE8 及以上的有效 */
  background:"green\0";
}

警告

不到万不得已的地步,尽量不要使用属性 Hack。

选择符 Hack

在 CSS 选择器中使用,给选择器前面加上 * html 即可。

* html body {
    /* ... */
}