为什么会有兼容问题?
这是因为不同浏览器厂商对页面架构的解析不同。
常见的浏览器厂商:IE chorme fiefox safari
浏览器的内核:
| 浏览器 | 内核 |
| IE | Trident |
| Chorme | wedkit/blink |
| fiefox | Gecko |
| safari | webkit |
引擎有:渲染引擎、JS引擎、V8引擎
兼容问题的解决方案:
- 使用CSS hake解决兼容问题
- 避免使用会产生兼容问题的CSS属性
- 其它兼容方法
使用CSS hake解决兼容问题:
使用CSS hake技术去兼容
注意:浏览器的版本是递减的(从高版本至低版本)先写高级版本认识的再写低级版本认识的。
- \0 IE8认识(在属性值后边写一个\0,IE浏览器的IE8版认识)
- + IE7认识(在属性前写一个+号,IE浏览器的IE7版认识)
- _ IE6认识(在属性前写一个下划线,IE浏览器的IE6版认识)
- * IE6和IE7都认识(在属性前写一个星号,IE浏览器的IE6版和IE7版都认识)
其它兼容方法:
IE的条件注释:
前提:只有IE认识,测试的时候要改变浏览器的模式版本
固定格式:
< body>
< !--[if IE8]> 版本是IE8版本
| 大于 | gt |
| 大于或等于 | gte |
| 小于 | lt |
| 小于或等于 | lte |
| 非指定版本 | ! |
使用meta兼容:(只能在360浏览器上去使用)
< meta name="randerer" content="weblit">如果编辑器中出现了这条代码就表示:页面在360浏览器打开时会使用极速模式打开.
常见的兼容问题:
display:inline-block在IE7下失效
解决方法:
* display:none;
*zoom:1
在写定位的时候top、left、bottom、right的值是0那么都要写上为了兼容IE6和IE7。