任务十二

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 一般在哪个网站查询属性兼容性?

can i use2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 什么是 CSS hack 由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozill...
    无目的阅读 267评论 0 0
  • 什么是 CSS hack css hack 由于不同厂商的浏览器或者同一厂商的浏览器的不同版本,IE6 IE7,对...
    饥人谷_hfz阅读 302评论 0 0
  • 一 什么是 CSS hack 由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozi...
    饥人谷_迪阅读 303评论 0 0
  • 1.什么是 CSS hack? 因为浏览器厂家的不同,例如常见的IE浏览器,Safari,谷歌浏览器,火狐浏览器等...
    小羊熊阅读 101评论 0 0