首先我们要了解一个概念CSS hack

不同浏览器,比如IE6、IE7、IE8,Mozilla Firefox等,对CSS的支持及解析结果不同,因此会导致相同的网页生成的页面效果不一样。

这个时候我们就需要针对不同的浏览器去定义不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。

这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。

CSS Hack的原理:由于不同的浏览器对CSS的支持及解析结果不同以及CSS中的优先级的关系,我们就可以根据这个来针对不同的浏览器来写不同的CSS。

比如:

IE6能识别下划线"_"和星号" * ",

IE7能识别星号" * ",但不能识别下划线"_",

而firefox两个都不能认识。

例如:比如,通常我们会遇到如下的写法:

.side_col { float:left; display: inline; margin-left: 20px; }

而为了适应IE6是:

.side_col { float: left; margin-left: 20px; }

* .side_col { _display:inline; /*hacked for IE 6*/ }

再比如:

id="bgcolor" 的控件要在 IE6 中显示蓝色, IE7 中显示绿色, Firefox 等其他浏览器中显示红色

. #bgcolor { background:red !important; /* Firefox 等其他浏览器 */ background:blue; /* IE6 */}*+html #bgcolor { background:green !important; /* IE7 */}IE6 不认 !important, 也不认 *+html. 所以 IE6 只能是 blue. IE7 认 !important, 也认 *+html, 优先度: (*+html + !important) > !important > +html. IE7 可以是 red, blue 和 green, 但 green 的优先度最高. Firefox 和其他浏览器都认 !important. !important 优先, Firefox 可以是 red 和 blue, 但 red 优先度高.

最新文章

  1. 【原创】机器学习之PageRank算法应用与C#实现(1)算法介绍
  2. svn 版本转为git
  3. UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
  4. CATransition-转场动画
  5. PHP一句话过狗、卫士、D盾等免杀思路!
  6. Exchange之证书申请
  7. 用GPUImage开启相机并且开启滤镜效果
  8. C++自增和自减运算符(--和++)
  9. iOS 使用UIBezierPath类实现随手画画板
  10. iOS开发——自定义进度圆环
  11. w3c编程挑战-初级脚本算法
  12. ajax请求service报405错误 - 【服务器不允许的方法】
  13. eclipse出现错误:he type java.util.Map$Entry cannot be resolved. It is indirectly referenced
  14. Unity的UI究竟为什么可以合批
  15. [2019BUAA人工智能实战_陈泽寅]第1次个人作业
  16. Druid、BoneCP、DBCP、C3P0等主流数据库对比
  17. 剑指offer(36)两个链表中的第一个公共节点
  18. hdu4052矩形面积并
  19. c# sqlite 数据库加密
  20. 【学习笔记】--- 老男孩学Python,day3 while 循环 运算符 逻辑、赋值运算

热门文章

  1. go语言之并发
  2. dba诊断之IO
  3. Azure 删除VHD时报错:There is currently a lease on the blob and no lease ID was specified in the request
  4. 理解 OpenStack Swift (1):OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置
  5. 搭建PHP官方框架zend framework 2(LINUX)
  6. POJ1523 SPF[无向图割点]
  7. ubuntu不能登录图形用户界面,游客身份可登陆,命令行可登陆
  8. jQuery学习之jQuery Ajax用法详解
  9. Net中HttpClient 重试
  10. Parallel.Invoke并行你的代码