【原】CSS hack整理(更新于20141109)

简介:

浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome、Safari、Firefox、 Opera,比较全面的记录下Hack,内容包括3部分:媒体查询 hack、属性Hack、选择器Hack,这些Hack已经测试并得到有效运用,有需要的同学可以放心使用,笔者会在以后不断的更新,如果有需要补充或者修改的,欢迎大家指教!

以下代码之间的空格是必要的,缺少空格导致失效

/*---------------------------------媒体查询hack [[---------------------------------*/

/* 只支持IE6、7 */

@media screen\9 {...}

 

/* 只支持IE8 */

@media \0screen {...}

 

/* 只支持IE6、7、8 */

@media \0screen\,screen\9 {...}

 

/* 只支持IE8、9、10 */

@media screen\0 {...} 

 

/* 只支持IE9、10 */

@media screen and (min-width:0\0) {...} 

 

/* 只支持IE10 */

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {...} 

 

/* 支持IE9、Chrome、Safari、Firefox、 Opera */

 

@media all and (min-width:0){...} 

 

/* 只支持wekit内核浏览器Chrome、Safari */

@media screen and (-webkit-min-device-pixel-ratio: 0) {...}

 

/* 只支持Opera */

@media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) {...} 

 

 /* 只支持Firefox */

@-moz-document url-prefix() {...}

 如:


<p class="class">@hack@hack@hack@hack@hack@hack</p>

<style type="text/css">

@media all and (min-width:0){ /* 在IE9文本颜色为红色*/

 .class{color:#F00;}

} 

@media screen and (-webkit-min-device-pixel-ratio: 0) { /* 在Chrome、Safari中文本颜色为绿色 */

 .class{color:#0F0;}

}

@media all and (-webkit-min-device-pixel-ratio: 10000), not all and (-webkit-min-device-pixel-ratio: 0) { /* 在Opera中文本颜色为蓝色 */

 .class{color:#00F;}

}

@-moz-document url-prefix() { /* 在Firefox中文本颜色为品红色 */

 .class{color:#F0F;}

} 

</style>

/*---------------------------------媒体查询hack ]]---------------------------------*/

 

/*---------------------------------选择器hack [[---------------------------------*/

/* 只支持IE7 */

html* 选择器{} 

 

/* 仅支持IE7  使用该选择器需要HTML顶部有声明:<!DOCTYPE HTML ......>*/

*+html  选择器{}

 

/* 只支持IE6 */

*html  选择器{}

如:


<p class="class">选择器hack选择器hack选择器hack选择器hack选择器hack选择器hack</p>

html* .class{color:#F00;} /* 在IE7中文本颜色为红色 */

*+html .class{color:#0F0;} /* 在IE7中文本颜色为绿色 */

*html .class{color:#00F;} /* 在IE6中文本颜色为蓝色 */

 /*---------------------------------选择器 hack ]]---------------------------------*/

 

 

/*---------------------------------属性hack [[---------------------------------*/

/* 只支持IE6、7、8、9、10 */

选择器{属性:属性值\9;}

 

/* 支持IE8、9、10 */

选择器{属性:属性值\0;}

 

/* 支持IE8的部分属性值、完全支持IE9、10 */

选择器{属性:属性值\9\0;}

 

/* 仅支持IE7和IE6 */

选择器{*属性:属性值;}

 

/* 只支持IE6 */

选择器{_属性:属性值;}

 

/* 只不支持IE6 */

选择器{属性:属性值!important;}

 

/* 仅支持Safari和Chrome ,且只能放在选择器的最后一个属性,因为当浏览器解析[;;]后,不会再读取后面属性 */

选择器{[;属性:属性值;]}

如:


<p class="class">属性hack属性hack属性hack属性hack属性hack属性hack</p>

<style type="text/css">

.class{

color:#F00\0;/* 在IE8和IE9中文本颜色为红色 */

*color:#0F0; /* 在IE7中文本颜色为绿色 */

_color:#00F; /* IE6中颜色为蓝色 */

[;color:#F0F;]/* 在Safari和Chrome中颜色为品红色 */

}

</style>

/*---------------------------------属性hack ]]---------------------------------*/ 

 

 建议是:尽量写出无hack的结构和样式,做到可以向后兼容,减少多余代码,更加可以体现自己专业化的态度。

作者:白树

出处:http://peunzhang.cnblogs.com/

目录
相关文章
|
2月前
|
Web App开发 前端开发
CSS Hack是什么?ie6,7,8的hack分别是什么
CSS Hack是什么?ie6,7,8的hack分别是什么
58 0
|
10月前
|
Web App开发 前端开发
区分IE6,IE7,IE8,IE9,FireFox,Chrome浏览器的CSS hack
区分IE6,IE7,IE8,IE9,FireFox,Chrome浏览器的CSS hack
|
前端开发 JavaScript 容器
CSS 实用技巧(更新ing)
CSS 实用技巧(更新ing)
137 0
CSS 实用技巧(更新ing)
|
Web App开发 SQL iOS开发
html-day10css兼容问题及常见的bug&hack
html-day10css兼容问题及常见的bug&hack
|
Web App开发 前端开发 iOS开发
CSS hack | 学习笔记
快速学习CSS hack
62 0
CSS hack | 学习笔记
|
前端开发 JavaScript Java
IntelliJ IDEA - 热部署(更新HTML/JSP/JS/CSS代码、不用重启Tomcat)
IntelliJ IDEA - 热部署(更新HTML/JSP/JS/CSS代码、不用重启Tomcat)
1112 0
IntelliJ IDEA - 热部署(更新HTML/JSP/JS/CSS代码、不用重启Tomcat)
|
Web App开发 前端开发 iOS开发
|
Web App开发 前端开发 JavaScript
CSS HACK
各种各样的浏览器,曾经的CSS HACK现在还能HACK吗?
133 0
CSS HACK
|
Web App开发 前端开发 Linux
css hack整理 (摘)
CSS Hack Table     Y 渲染 N 不渲染 H 部分版本或部分属性渲染 B 样式失效   windows Mobile Linux Mac IE Firefox Chrome Safari Opera Android iOS Firefox Chro...
880 0
|
Web App开发 前端开发
css hack技术
css hack的定义: css hack由于不同的浏览器,比如:IE6,IE7,Firefox等,对css夫人解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。
1214 0