-
什么是 CSS hack
由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。CSS hack 就是这种情况下我们针对不同的浏览器去写不同的CSS的一个过程,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果
-
谈一谈浏览器兼容的思路
产品的受众,及受众使用的各浏览器的比例,效果优先还是基本功能优先。
成本的考虑,投入产出比。
兼容哪些浏览器,兼容到什么版本,让哪些浏览器支持哪些效果。
渐进增强和优雅降级的选择
根据兼容需求选择技术框架,比如:
Bootstrap (>=ie8)
jQuery 1.~ (>=ie6), jQuery 2.~ (>=ie9)
Vue (>= ie9)根据兼容需求选择兼容工具html5shiv.js、respond.js、css reset、Modernizr、postCSS
条件注释、CSS Hack、js 能力检测做一些修补。
-
列举5种以上浏览器兼容的写法
, ie6,ie7可以识别;
_和- , ie6可以识别;
!important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;
-webkit- ,针对safari,chrome浏览器的内核CSS写法
-moz-,针对firefox浏览器的内核CSS写法
-ms-,针对ie内核的CSS写法
-o-,针对Opera内核的CSS写法
-
以下工具/名词是做什么的
- 条件注释:用于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码。使用了条件注释的页面在IE9中可正常工作,但在IE10中无法正常工作。 IE10不再支持条件注释。
- IE Hack:针对IE浏览器的不同版本去写不同的CSS,让它能在这些浏览器中得到我们想要的页面效果。常用方法:CSS属性前缀法、选择器前缀法以及IE条件注释法。
- js 能力检测:使用js检测浏览器支持的属性,以便展示效果。目标不是识别特定的浏览器,而是识别浏览器的能力。
- html5shiv.js:通过使用html5shiv.js让IE9以下版本浏览器支持所有的HTML5标签。
- respond.js:让不支持css3 Media Query的浏览器包括IE6-IE8支持查询。
- css reset:重置样式,清除浏览器默认样式。
- normalize.css:是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。
- Modernizr:是一个开源的JS库,它使得那些基于访客浏览器的不同(指对新标准支持性的差异)而开发不同级别体验的设计师的工作变得更为简单。它使得设计师可以在支持HTML5和CSS3的浏览器中充分利用HTML5和CSS3的特性进行开发,同时又不会牺牲其他不支持这些新技术的浏览器的控制。
- postCSS:它就是一个平台;PostCSS提供了一个解析器,它能够将CSS解析成抽象语法树(AST);通过在PostCSS这个平台上,能够开发一些插件,来处理CSS,比如热门的:autoprefixer;能够使用JavaScript来开发插件。
-
一般在哪个网站查询属性兼容性?