1.什么是 CSS hack
由于不同厂商的浏览器,比如IE,Chrome等,或者是同一浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,会导致生成的页面效果不一样。这个时候就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器。也可以反过来利用CSShack为不同版本的浏览器定制编写不同的CSS效果。
2谈一谈浏览器兼容的思路
由于不同浏览器对html以及css的解析方式不同,因此会导致同样的代码在不同的浏览器产生的效果不一致,甚至对于低版本的浏览器,有些样式它会不识别从而忽略,因此为了向下兼容,我们不得不使用hack,使用hack虽然对页面表现的一致性有好处,但过多的滥用会造成html文档混乱不堪,增加管理和维护的负担。因此我们还是应该少用、慎用hack,促使浏览器厂商的标准越来越趋于统一,顺利过渡到标准浏览器的主流时代。
逐渐增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。
3,列举5种以上浏览器兼容的写法
*,ie6,ie7可以识别;
_和- , ie6可以识别;
!important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;
-webkit- ,针对safari,chrome浏览器的内核CSS写法
-moz-,针对firefox浏览器的内核CSS写法
-ms-,针对ie内核的CSS写法
-o-,针对Opera内核的CSS写法
4 以下工具/名词是做什么的
条件注释 条件注释 (conditional comment) 是于HTML源码中被IE有条件解释的语句。条件注释可被用来向IE提供及隐藏代码。
-->用于非 IE
IE Hack
CSS Hack大致有3种表现形式,CSS属性前缀法、选择器前缀法以及IE条件注释法(即HTML头部引用if IE)Hack,实际项目中CSS Hack大部分是针对IE浏览器不同版本之间的表现差异而引入的。
属性前缀法(即类内部Hack):例如 IE6能识别下划线""和星号" * ",IE7能识别星号" * ",但不能识别下划线"",IE6~IE10都认识"\9",但firefox前述三个都不能认识
选择器前缀法(即选择器Hack)
IE条件注释法(即HTML条件注释Hack):针对所有IE(注:IE10+已经不再支持条件注释): ,针对IE6及以下版本:。这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效.
html5shiv.js:用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题。
由于IE6/IE7/IE8还有很大一部分用户,为了让网站浏览者都能正常的访问HTML5网站,解决方案就有下面使用Javascript来使不支持HTML5的浏览器支持HTML标签。目前大多网站采用的这种方式(Bootcss官方例子也是如此)。
原理:利用脚本document.createElement(“”)创建对应的脚本,CSS选择器便可正确应用到该标签。使用:考虑到IE9是支持html5的,所以直接在HTML页面的head标签中添加脚本引用即可:
respond.js Respond.js让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询。
css reset 因为早期的浏览器支持和理解的CSS规范不同,导致渲染页面时效果不一致,会出现很多兼容性问题。所以才会产生css reset 的问题。
normalize.css ormalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS Reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。Normalize.css现在已经被用于Twitter Bootstrap、HTML5 Boilerplate、GOV.UK、Rdio、CSS Tricks 以及许许多多其他框架、工具和网站上。
ModernizrModernizr 是一个很小的用来检测下一代 Web 技术原生实现可用性的 JavaScript 库。
HTML5 和 CSS3 都引入了各自的新特性,但是同时也有很多浏览器不支持这些新特性。
Modernizr 提供了一种简单的方式检测任意新特性,从而让我们可以采取相应的操作。比如,浏览器还不支持视频特性,那么我们可以显示一个简单的页面。
我们还可以基于某个特性的可用性来创建 CSS 规则,如果浏览器不支持某个新特性,那么这些规则将会自动应用到网页上。- postCSS 是一个使用JS 插件来转换CSS 的工具。 这些插件可以支持使用变量,混入(mixin),转换未来的CSS 语法,内联图片等操作。 简而言之,PostCSS 可以将CSS 转变成JavaScript 可以操作的数据格式。
5 一般在哪个网站查询属性兼容性?