前言
现在响应式开发无疑是在工作当中很必要的,但是众从周知IE系列的兼容性是不敢恭维的,下面大家就来认识一下Respond.js来解决你的苦恼吧。
Bootstrap里面就引入了这个js文件,从名字很显然可以看出来是自适应的兼容。打开IE看了一下,效果挺好的,自适应的效果挺好的。Respond.js让不支持CSS3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询。
原理:
- 1.把head中所有的的css路径取出来放入数组
- 2.然后遍历数组一个个发ajax请求
- 3.ajax回调后仅分析response中的media query的min-width和max- width语法,分析出viewport变化区间对应相应的css块
- 4.页面初始化时和window.resize时,根据当前viewport使用相应的css块。
使用:考虑到IE9是支持CSS3的,所以直接在HTML页面的head标签中添加脚本引用即可:
1 | `<!--[if lt IE 9]>` |
使用方式
- 官方demo地址:
http://scottjehl.github.com/Respond/test/test.html
- 1.在css中正常用 min/max-width media queries
1 | @media screen and (min-width: 480px){ |
- 2.引入respond.min.js,但要在css的后面(越早引入越好,在ie下面看到页面闪屏的概率就越低,因为最初css会先渲染出来,如果respond.js加载得很后面,这时重新根据media query解析出来的css会再改变一次页面的布局等,所以看起来有闪屏的现象)