CSS-HACK
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
* html body {
background-color: #bfa;
/* _background-color: yellow;*/
/*
* *background-color: yellow;
*/
/* background-color: yellow\0; */
}
</style>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/style-ie8.css" />
<![endif]-->
</head>
<body>
<!--以下内容只会出现在IE6中-->
<!--[if IE 6]>
<p>为了您和家人的身体健康,请远离IE6!!!</p>
<![endif]-->
<!--[if IE 8]>
<p>当前浏览器是IE8</p>
<![endif]-->
<!--[if lt IE 9]>
<p>该标签会在IE9以下的浏览器中显示</p>
<![endif]-->
<!--[if ! IE 6]>
<p>你的浏览器不是IE6</p>
<![endif]-->
</body>
</html>
1. 说明
- 有一些情况有特殊的代码只需要在某些特殊的浏览器中执行
- 而在其他的浏览器中不需要执行,这时就可以使用 CSS Hack 来解决该问题
- CSS Hack 实际上指的就是一个特殊的代码,这段代码只在某些特殊的浏览器中可以识别
- 而其他浏览器不能识别,通过这种方式,来为一些浏览器设置特殊的代码
- 条件 Hack,条件 Hack 只对 IE 浏览器有效,其他的浏览器都会将它识别为注释
- IE10 及以上的浏览器已经不支持这种方式
2. css-hack
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/style-ie8.css" />
<![endif]-->
3. 条件 hack
<!--以下内容只会出现在IE6中-->
<!--[if IE 6]>
<p>为了您和家人的身体健康,请远离IE6!!!</p>
<![endif]-->
<!--[if IE 8]>
<p>当前浏览器是IE8</p>
<![endif]-->
<!--[if lt IE 9]>
<p>该标签会在IE9以下的浏览器中显示</p>
<![endif]-->
<!--[if ! IE 6]>
<p>你的浏览器不是IE6</p>
<![endif]-->
4. 选择器 hack
在选择器前添加 * html 则选择器只有 IE6 可以识别
- 假设为在 IE6 中需要将背景颜色设置为黄色才能达到和其他浏览器同样的效果,希望黄色背景只在 IE6 中生效
- 在样式前边添加下划线,则该样式只有 IE6 及以下的浏览器才可以识别*
_background-color: yellow;
- 添加了*的样式只有 IE7 及以下的浏览器认识
*background-color: yellow;
- 在样式最后添加一个\0 则只有 IE8 及以上的浏览器才能识别
background-color: yellow\0;
CSS Hack 不到万不得已的情况尽量不要使用