CSS hack由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
1、浏览器运行的模式:
标准模式(只支持标准代码)、混杂模式、准标准模式(标准和非标准都可以运行);
例如:标准代码cursor:pointer;小手 IE下可以运行 cursor:hand;
不同模式对CSS框模型和JS解析都有一定的影响;依靠<!doctype>进行模式选择;
2、CSSHack工作原理:通过选择器或样式的优先级来解决兼容性问题;
①CSS类内部Hack:通过前后缀的方式来解决兼容性
②选择器Hack:在选择器前加前缀解决兼容性
③HTML头部引用Hack:通过条件注释来解决兼容性问题
<!doctype html> <html> <head> <title></title> <meta charset="utf-8"> <link rel="stylesheet" href="css/style_all.css"> <!--[if IE 6]> <link rel="stylesheet" href="css/style_ie6.css"> <![endif]--> <!--[if IE 8]> <link rel="stylesheet" href="css/style_ie8.css"> <![endif]--> </head> <body> <div id="d1"></div> </body> </html>