CSS hack(各个浏览器兼容问题)
来源:互联网 发布:淘宝极有家投诉电话 编辑:程序博客网 时间:2024/06/07 03:46
什么是CSS Hack?
由于不同厂商的浏览器或某浏览器的不同版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持、解析不一样,导致在不同浏览器
的环境中呈现出不一致的页面展现效果。这时,我们为了获得统一的页面效果,就需要针对不同的浏览器或不同版本写特定的CSS样式,我们把这个针对
不同的浏览器/不同版本写相应的CSS code的过程,叫做CSS Hack。
CSS Hack的分类
CSS Hack大致有3种表现形式,CSS属性前缀法、选择器前缀法以及IE条件注释法(即HTML头部引用if IE)Hack,实际项目中CSS Hack大部分是针对
IE浏览器不同版本之间的表现差异而引入的。
属性前缀法: 例如IE6能识别下划线“_”和星号“ * ”,IE7能识别星号“ * ”,但不能识别下划线“_”,IE6~IE10都认识"\9",但火狐这三个都不认识.
选择器前缀法:例如IE6能识别*html.class{},IE7能识别*+html.class{}或者*.first-child+html.class{}。
IE条件注释法:针对所有IE(注:IE10+已经不再支持条件注释):<!--[if IE]>IE浏览器显示的内容<![endif]-->,针对IE6及以下版本:<!--[if it IE 6]> 只在IE6显示的内容<![endif]-->。这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效
一、属性前缀法
IE6IE7IE8IE9IE10现代浏览器* + - !important \9 \0 \9\0
例如: *background-color : green;
属性前面加个“*”这样的写法只会对IE6、7生效,其它版本IE及现代浏览器会忽略这条指令(没有特殊说明,本文所有hack都是指在声明了
DOCTYPE的文档的效果)
二、选择器前缀法
选择器hanck主要是针对IE浏览器,其实并不怎么常用,语法是这样的:<hack> selector{ sRules }
IE6IE7IE8IE9IE10现代浏览器*html *+html :root针对IE9的写法可以这样写
:root .test
{
background-color:green;
}
三、 IE条件注释法
只在IE下生效<!--[if IE]>这段文字只在IE浏览器显示<![endif]-->只在IE6下生效<!--[if IE 6]>这段文字只在IE6浏览器显示<![endif]-->只在IE6以上版本生效<!--[if gte IE 6]>这段文字只在IE6以上(包括)版本IE浏览器显示<![endif]-->只在IE8上不生效<!--[if ! IE 8]>这段文字在非IE8浏览器显示<![endif]-->非IE浏览器生效<!--[if !IE]>这段文字只在非IE浏览器显示<![endif]-->
- CSS hack(各个浏览器兼容问题)
- css hack 浏览器兼容问题汇总
- CSS HACK和浏览器兼容问题的解决方法
- css hack 处理浏览器的兼容问题
- CSS Hack技术解决多浏览器兼容问题
- CSS Hack 各个浏览器区分汇总
- CSS Hack (各个浏览器兼容的问题)
- 各个浏览器下css hack的写法
- CSS Hack (各个浏览器兼容的问题)
- CSS Hack (各个浏览器兼容的问题)
- CSS各个浏览器Hack的写法
- 前端浏览器兼容问题&hack
- [CSS Hack]解決IE6、IE7、IE8、Firefox的浏览器兼容问题
- css hack 兼容问题
- CSS hack与各个浏览器兼容、JS等
- 各个浏览器hack的总结
- 各浏览器CSS hack
- css hack, 浏览器 选择
- 生成Json、解析Json的简单示例
- 如何使用新版万能地图下载器下谷歌地图像和等高线叠加
- Manifest merger failed解决方法
- 关于bootstrap学习总结
- 数据结构和算法
- CSS hack(各个浏览器兼容问题)
- 深入浅出讲解:php的socket通信
- eclipse中集成struts环境的润乾项目
- gradle混淆错误查询
- 类加载器的父亲委托机制深度详解
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- angular2.0demo小样
- SSH公钥(public key)验证
- ueditor 添加自定义上传接口