浏览器兼容
为什么有浏览器兼容?
由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也很难重和,这就为各种莫名其妙的Bug(代码错误)提供了温床。再加上各大厂商出于自身利益考虑而设置的种种技术壁垒,都让CSS应用起来比想象得要麻烦。浏览器的兼容问题是我们必须去克服的。
NCSA Mosaic,或简称Mosaic,是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器;
浏览器内核 ( 现代4大内核 )
Trident 代表作:IE
Gecko 代表作:Mozilla FireFox
WebKit : 苹果 & 谷歌旧版本
Blink : 代表作:谷歌 & 欧鹏
Presto ( Opera前内核 已经废弃 )
CSS Bug、CSS Hack和Filter:
CSS Bug: CSS样式在各浏览器中解析不一致的情况,或者说CSS样式在浏览器中不能正确显示的问题称为CSS bug.
CSS Hack: CSS中,Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法,因为它们都属于个人对CSS代码的非官方的修改,或非官方的补丁。有些人更喜欢使用patch(补丁)来描述这种行为。
解决bug的方法;
Filter:表示过滤器的意思,它是一种对特定的浏览器或浏览器组显示或隐藏规则或声明的方法。本质上讲,Filter是一种用来过滤不同浏览器的Hack类型。
解决bug的的一种方法;
1.下划线属性过滤器
当在一个属性前面增加了一个下划线后,由于符合标准的浏览器不能识别带有下划线的属性而忽略了这个声明,但是在IE6及更低版本浏览器中会继续解析这个规则。
语法:选择符{_属性:属性值;}
2. !important关键字过滤器 (增加当前属性的权重,具有最高优先级)
它表示所附加的声明具有最高优先级的意思。但由于IE6及更低版本不能识别它,
我们可以利用IE6的这个Bug作为过滤器来兼容IE6和其它标准浏览器。
语法:选择符{属性:属性值 !important;}
3. *属性过滤器
当在一个属性前面增加了*后,该属性只能被IE7浏览器识别,其它浏览器混略该属
性的作用。
语法:选择符{*属性:属性值;}
4. \9 :IE版本识别;其它浏览器都不识别
语法:选择符{属性:属性值\9;}
5. \0 : IE8 及以上版本识别;其它浏览器都不识别
语法:选择符{属性:属性值\0;}