据说浏览器兼容问题曾经一直不被重视,因为国内曾经是IE这个巨无霸的天下,网站只要做好IE就浮云了,但是随着人们的价值品味的改变,和以谷歌、火狐等浏览器领头的冲击,IE的热量在逐渐消退,越来越多的用户使用上了非IE内核的浏览器,目前市面上非IE内核的浏览器主流的、非主流的太多了,所以,前端开发者的难题就来了——浏览器兼容,这个另众多前端开发者头大的问题
懂得CSS的朋友,应该听说过CSS hack,现在的浏览器如IE、Firefox、Chrome、Opera、Safari。。。百家争鸣,可苦了Web前端开发者。下面是我在网络整理的一些资料,希望对大家有所帮助。
浏览器的粗分类
虽然目前流传的浏览器种类颇多,但是实际上可以将所有主流浏览器大致的分为两个类型:
1、IE内核浏览器(IE6、IE7、IE8、360浏览器、QQ浏览器、傲游浏览器)
2、标准浏览器(狐火浏览器、Safari浏览器、Opera浏览器、Google浏览器)
不同的浏览器对CSS的解释都有一些特殊情况,特别是padding, line-height这些要细微控制的地方,下面的hack基本可以解决这个问题:
1、在属性前加下划线(_),那么此属性只会被IE6解释;
2、在属性前加星号(*),此属性只会被IE7解释;
3、在属性值后面加"9",表示此属性只会被IE8解释
各浏览器CSS hack兼容表:
color:red; /* 所有浏览器都支持 */
color:red !important;/* Firefox、IE7支持 */
_color:red; /* IE6支持 */
*color:red; /* IE6、IE7支持 */
*+color:red; /* IE7支持 */
color:red9; /* IE6、IE7、IE8支持 */
color:red ; /* IE8支持 */
body:nth-of-type(1) p{color:red;} /* Chrome、Safari支持 */
color:red; /* 所有浏览器都支持 */
color:red !important;/* Firefox、IE7支持 */
_color:red; /* IE6支持 */
*color:red; /* IE6、IE7支持 */
*+color:red; /* IE7支持 */
color:red9; /* IE6、IE7、IE8支持 */
color:red ; /* IE8支持 */
body:nth-of-type(1) p{color:red;} /* Chrome、Safari支持 */