网页重构中区分IE6、IE7、IE8及标准浏览器的最佳方法
由于万恶的IE6和IE7,我们在页面重构时不免要对其进行各种bug修复及差异化处理。在标准浏览器中可实现的效果在IE里却有各种离奇问题,例如IE6、IE7不能良好应对的inline-block和.clearfix问题,好在大部分问题已经有了足够的总结和途径。废话不多说,下面是一些方法区分浏览器的方法和我的看法。
主要途径
CSS Hack
直接在CSS文件中写CSS Hack是非常直观的区分方法。区分不同IE版本的hack代码为
#content{background:red; /* 所有浏览器 */background:orange\9; /* 所有IE浏览器 */*background:yellow; /* IE7和IE6 */+background:green; /* IE7 */_background:blue; /* IE6 */}
<!--[if IE]><link rel="stylesheet" href="/ie-all.css" type="text/css" media="screen" /><![endif]--><!--[if lt IE 8]><link rel="stylesheet" href="/ie.css" type="text/css" media="screen" /><![endif]--><!--[if IE 7]><link rel="stylesheet" href="/ie7.css" type="text/css" media="screen" /><![endif]--><!--[if IE 6]><link rel="stylesheet" href="/ie6.css" type="text/css" media="screen" /><![endif]-->
<!--[if lt IE 8]><link rel="stylesheet" href="/ie.css" type="text/css" media="screen" /><![endif]-->
<!--[if lt IE 7 ]> <html name="code">#content{background:red;}.ie9 #content{background:orange;}.ie8 #content{background:yellow;}.ie7 #content{background:green;}.ie6 #content{background:blue;}