之前在很多地方看到css hack,今天狠下心,看看到底是什么鬼,所有我去百度了,然后看了一篇文章,然后写个小总结。

css hack就是通过加一些特定的符号,不同的浏览器可以识别特定符号的样式,以此达到在不同的浏览器下面,可以看到不同的css样式。

1.大部分特殊字符IE浏览器支持,其他主流浏览器firefox,chrome,opera,safari不支持 (opera可识别除外)。
2.\9    :所有IE浏览器都支持
3._和- :仅IE6支持
4.*     :IE6、E7支持
5.\0    :IE8、IE9支持,opera部分支持
6.\9\0 :IE8部分支持、IE9支持
7.\0\9 :IE8、IE9支持

各种CSS hack情况介绍

1.区别IE和非IE浏览器

#tip{
background:blue;/*非IE背景蓝色 因为所有浏览器都能解释*/
background:red\9;/*IE6、IE7、IE8、IE9背景紅色 因为\9在IE6.7.8.9中可以识别,覆盖上面样式 IE10跟11应该不识别,IE11测试确定*/
}

2.区别IE6、IE7(方法1)

#tip{
*background:black;/*IE7背景变黑色*/
_background:orange;/*IE6背景变橘色*/
}

3.区别IE6、IE7(方法2)

#tip{
background:black!important;/*IE7背景变黑色*/
background:orange;/*IE6背景变橘色*/
}

IE浏览器下hack总结

element{
color:#666\9; //IE8 IE9
*color:#999; //IE7
_color:#EBEBEB; //IE6
}

可以看出,利用字符识别无法区分IE8和IE9,我们可以从伪类的识别来区分

element{
color:#666\9; //IE8
*color:#999; //IE7
_color:#EBEBEB; //IE6
}
:root element{color:#666\9;}//IE9

【说明】:“:root”伪类IE系列只有IE9支持,其他主流浏览器均支持,利用这一点来区分IE8和IE9。另外考虑到opera部分支持,完全支持:root,所以不使用。

兼容各大主流浏览器(最新版本)css hack汇总如下(最全的):

.element{
color:#000; /*w3c标准*/
[;color:#f00;]; /*Webkit(chrome和safari)*/
color:#666\9; /*IE8*/
*color:#999; /*IE7*/
_color:#333; /*IE6*/
}
:root .element{color:#0f0\9;} /*IE9*/
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (
-webkit-min-device-pixel-ratio:0) { .element{color:#336699;}} /*opera*/
@-moz-document url-prefix(){ .element{color:#f1f1f1;}} /*Firefox*/

最新文章

  1. c# http get请求与post请求实例
  2. Linux脚本学习
  3. PowerDesigner 16.5 反向PostgreSQL9.01 中 Unable to list the columns. SQLSTATE = 22003不良的类型值 short : t 解决方法
  4. PHP 程序员的技术成长规划
  5. c#抽象类相关
  6. Windows Embedded CE 6.0开发环境的搭建
  7. MySQL-视频跟随练习笔记
  8. win7删除桌面文件需要刷新才会消失(2种解决方法)
  9. Android控件拖动的实现
  10. 20.DOM
  11. 关闭浏览器事件 onbeforeunload和onunload
  12. js 获取两个时间戳之间相隔多少天多少小时多少分多少秒
  13. (转)基于C#的socket编程的TCP异步实现
  14. php json_encode在CI框架中的使用细节
  15. 【CSS系列】获取实时数据做进度
  16. 初学者下载使用Python遇到的问题看它就行了
  17. (转)SQL Server 列转行
  18. python装饰器简单使用
  19. CodeForces 785A Anton and Polyhedrons
  20. 20145214 《Java程序设计》第6周学习总结

热门文章

  1. JDK的新特性
  2. 报错 "Host '192.168.209.1' is not allowed to connect to this MySQL server"
  3. c++ throw异常(学习)
  4. 小记LoadRunner 11 安装VC2005运行环境报错处理
  5. iOS-自定义导航控制器
  6. python中Requests的重试机制
  7. unity读取灰度图生成等值线图
  8. CG标准函数
  9. windows7-tomcat配置
  10. C# volatile 摘录