浏览器的CSS各种hack,大汇总

对着IE久了也有感觉了,在win10出新浏览器以及中国的IE6+用户没有普及新的浏览器前IE还是个坑,所以hack这东西还是要掌握一点的。不废话直接贴图

浏览器的CSS各种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