浏览器兼容

2017-04-16  本文已影响0人  饥人谷_关飞

1、什么是 CSS hack


由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。CSS hack 就是这种情况下我们针对不同的浏览器去写不同的CSS的一个过程,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。

2、谈一谈浏览器兼容的思路


1.首先需要考虑产品的类型以及受众,按照受众的使用各种浏览器的比例来决定是效果优先还是功能优先。
2.考虑所需工时,及投入产出比来决定是否优化
3.考察具体需要针对那些浏览器进行优化,是采用渐进增强还是优雅降级
4.根据不同的浏览器选择技术框架:
Bootstrap (>=ie8)
jQuery 1.~ (>=ie6), jQuery 2.~ (>=ie9)
Vue (>= ie9)
5.根据兼容需求选择兼容工具html5shiv.js、respond.js、css reset、Modernizr、postCSS
6.条件注释、CSS Hack、js 能力检测做一些修补。

3、列举5种以上浏览器兼容的写法


<!–-[if IE 7]><link rel="stylesheet" href="ie7.css" type="text/css" /><![endif]–-> 项目 范例 说明 ! [if !IE] 非IE lt [if lt IE 5.5] 小于IE 5.5 lte [if lte IE 6] 小于等于IE6 gt [if gt IE 5] 大于 IE5 gte [if gte IE 7] 大于等于IE7 | [if (IE 6)|(IE 7)] IE6或者IE7

还有使用Modernizr等类似工具
运行的时候它会在html元素上添加一批CSS的class名称,这些class名称标记当前浏览器支持哪些特性和不支持哪些特性,支持的特性就直接显示该天特性的名称作为一个class(例:canvas,websockets),不支持的特性显示的class是“no-特性名称”。
可以直接使用Modernizr在元素里生成的class名称,在你的css文件里定义相应的属性以便支持当前浏览器。例如,下面的代码可以属性,在支持shadow阴影的浏览器显示shadow,不支持的浏览器显示标准的边框:

.boxshadow #MyContainer { border: none; -webkit-box-shadow: #666 1px 1px 1px; -moz-box-shadow: #666 1px 1px 1px; } .no-boxshadow #MyContainer { border: 2px solid black; }

4、以下工具/名词是做什么的


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


http://caniuse.com/

上一篇 下一篇

猜你喜欢

热点阅读