对着IE久了也有感觉了,在win10出新浏览器以及中国的IE6+用户没有普及新的浏览器前IE还是个坑,所以hack这东西还是要掌握一点的。不废话直接贴图
记得之前在项目里面针对IE6的hack是这样写的_bakcground:#fff;其实这只是能给IE6用罢了。
黄色部分为选择器hack
IE Hack
IE系列浏览器的hack大略如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style type="text/css">
body{
/*普通的背景——大家都懂的 */
/*background:#ccc;*/ /*IE5到IE10的背景*/
/* background:#f00\9;*/ /*IE8+*/
/*background:#f00\0;*/ /*只有IE8*/
/*background:#f00\0/;*/ /*IE5,IE6,IE7*/
/**background:#0f0; */
/*IE5,IE6,IE7*/
/*+background:#0f0; */
/*IE5,IE6,IE7*/
/*@background:#0f0; */
/*IE5,IE6,IE7*/
/*>background:#0f0; */
/*IE5,IE6,IE7*/
/*/background: orange;*/
/*IE5,IE6,IE7*/
/*#background:#9d55b8; */ /*IE5,IE6*/
/*_background:#00f;*/
} /*IE9,IE10*/
:root body{background:#f00\9; };
</style>
</head>
<body class="demo">
<p>manfred Hu</p>
</body>
</html>
其中IE6因为IE没有自带所以下了个浏览器专门测试,其他为IE开启旧的模式测试的,可以像我一样一行一行注释掉测试。
FireFox Hack
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style type="text/css">
@-moz-document url-prefix(){
body{
background:#ccc;
}
}
</style>
</head>
<body>
<p>manfred Hu</p>
</body>
</html>
Chrome and Safari and Opera Hack
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<style type="text/css">
@media screen and (-webkit-min-device-pixel-ratio:0){
body{
background:#ccc;
}
}
</style>
</head>
<body>
<p>manfred Hu</p>
</body>
</html>
这个hack是除了FireFox和IE之外其他浏览器都支持的。这是拉阵营的节奏?
所有代码亲测有效,有错的地方欢迎指出。^_^
最著名、最有用的CSS过滤器之一是星号HTML Hark。IE的老版本(6-)有一个匿名的根元素,它包围着HTML元素。可以利用这点使用继承构建IE独有规则:
* html #content{ width:500px; }
子选择器Hark:使用旧版本IE不认识的子选择器Hark
html > body { background-image:url(bg.png); }
“_”是IE6专有的hack
“+”是IE7的
“\9” IE6/IE7/IE8/IE9/IE10都生效
“\0” IE8/IE9/IE10都生效,是IE8/9/10的hack
“\9\0” 只对IE9/IE10生效,是IE9/10的hack