浏览器的兼容性

2017-09-15  本文已影响0人  简人CC

* 什么是 CSS hack

css hack由于不同浏览器厂商或者不同浏览器的不同版本,如IE6.IE7,对css解析完成不同,因此会导致页面的效果不一样,得不到我们想要的页面效果,这个时候就需要针对不同的浏览器写不同的CSS Hack来达到我们想要的效果。总之,Css Hack的目的就是是你的Css代码兼容不同的浏览器。反之,也就是利用了不同浏览器的Css Hack来写对应css效果。

* 谈一谈浏览器兼容的思路

1.可以从网站面向的群体来考虑:
* 如果面向的是银行 政府 传统企业 这类就需要考虑兼容方面的问题。
* 如果面型是电子商务,青少年社交网站等年轻群体就一开始构建完整的功能,然后再针对低版本浏览器优雅降级

2.浏览器所占的市场比重:
* 如果一个浏览器市场份额很少,就不太需要关心兼容方面的问题.

3.页面是以效果优先还是以基本功能优先
* 如果是以效果优先就一开始构建完成的功能,然后再针对低版本浏览器优雅降低
* 如果是以基本功能优先: 那就针对低版本浏览器进行页面构建,保证基本功能,然后在对新版本浏览器进行效果 交互 等改进和追加功能以达到更好的用户体验.

做到什么程度:
让浏览器支持哪些功能和效果
如何做

  • 根据兼容需求选择技术框架和库(jQuery)
  • 根据兼容需求选择兼容工具(html5shiv.js .respond.js .css reset.normalze.css.Modernizr)
  • 条件注释. css Hack .js能力检测 做进一步修补.

* 浏览器兼容的写法

browserhacks

  • html{}会被IE6识别
    +htmlP{}会被IE7识别
    html{color:red\9}IE6~8识别
    -webkit-text-shadow{}浏览器私有前缀

* 条件注释

不会被浏览器解析的。添加注释添加可读性

* IE Hack

IE不同版本对css解析不同,针对不同版本写不同的Css Hack来达到想要的页面效果

* js 能力检测

* html5shiv.js

IE9之前的版本几乎不支持HTML5与Css3新特性。html5shiv.js可以允许IE9之前的版本识别HTML5标记,使用Css样式.

* respond.js

主要针对低版本浏览器对媒体查询的实现.

* css reset

主要就是早期的浏览器对css的理解不同,造成渲染效果不同。css reset修改了css的默认样式来尽量达到渲染效果一致

* normalize.css

基于css reset. 觉得css reset 太简单粗暴了,不应该把css的所有默认样式都清除。

推崇的思想每个元素都有其存在的意义,简单粗暴的一视同仁并不好。尽少的修改.
优点:
* 保护有用的浏览器默认样式
* 一般化的格式
* 修复浏览器自身的Bug
* 优化css可用性
* 代码解释

* Modernizr

主要来检测 浏览器对一些新的属性是否支持

* postCSS.

胜于less和sass的Postcss,还支持模块化,以及灵活的构建进程。

PostCss提供一个css解析器和创建可以分析 测试 处理资源 优化 创建回调。和传输给其他解析css
框架的插件的宽框架。具体详解->PostCss

* 一般在哪个网站查询属性兼容性?

can i use

上一篇下一篇

猜你喜欢

热点阅读