您现在的位置:首页 >> 前端 >> 内容

Repond.js

时间:2017/3/9 9:13:00 点击:

  核心提示:Respond.jsRespond.js让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持媒体查询。Respond.js 是一个快速、轻量的 polyfill,用于为 ...

Respond.js

Respond.js让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持媒体查询。

Respond.js 是一个快速、轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width特性,实现响应式网页设计(Responsive Web Design)。

响应式布局,理想状态是,对PC/移动各种终端进行响应。媒体查询的支持程度是IE9+以及其他现代的浏览器,但是IE8在市场当中仍然占据了比较大量的市场份额,使我们不得不进行IE低端浏览器的考虑。那么如何在IE6~8浏览器中兼容响应式布局呢?
这里我们需要借助这样一个文件:respond.js.

文件下载地址:respond.js.

自己在阅读了官方文档之后,进行了一系列测试。友情提示各位朋友,关于respond.js的使用,有一些需要注意的地方,一旦不注意,在IE6-8中就无法显示出来。

插件原理

既然要实现响应式网页,那么就需要用到媒体查询,媒体查询的核心是min-width 和 max-width,而IE8以下以及一些其它的浏览器不支持这两个属性,respond.js是怎么做的呢?

将head中所有外部引入的CSS文件路径取出来存储到一个数组当中; 遍历数组,并一个个发送AJAX请求; AJAX回调后,分析response中的media query的min-width和max-width语法(注意,仅仅支持min-width和max-width),分析出viewport变化区间对应相应的css块; 页面初始化时和window.resize时,根据当前viewport使用相应的css块。

使用方法

考虑到IE9是支持CSS3的,所以直接在HTML页面的head标签中添加脚本引入即可:







<script src="/path/to/respond.proxy.js"></script>

其他的支持响应式布局的插件-css3-dediaqueries.js

css3-mediaqueries.js支持几乎所有的media query的语法。会出现闪屏。并不是很推荐使用,虽然能够支持全部的mediaqueries,但min-width和max-width其实就可以满足我们对响应式布局的需要。

补充一点

if CSS files are encoded in UTF-8 with Byte-Order-Mark,they will not work with Repond.js in IE7 or IE8.


也就是说保存格式应该是utf-8无BOM格式,BOM会影响程序对文档的处理,正常的utf-8文档应该没事。

Tips

always link stylesheets or write inline CSS before js scripts.

Respond.js on Github: https://github.com/scottjehl/Respond.

Tags:RE EP PO ON 
作者:网络 来源:分享与交流