什么是 Respond?
Respond.js 是一个开源的 JavaScript 库,由 Scott Jehl 开发,主要用于在不支持 CSS3 媒体查询(Media Queries)的旧版浏览器(如 Internet Explorer 6–8)中启用响应式网页设计。
它通过解析页面中的 CSS 文件,识别媒体查询规则,并根据当前窗口宽度动态应用相应的样式,从而实现“响应式”效果。
核心功能
- 为 IE6-8 添加媒体查询支持
- 轻量级(仅约 3KB 压缩后)
- 无需修改现有 CSS 代码
- 自动监听窗口大小变化并重新计算
基本用法
只需在 HTML 页面底部引入 respond.min.js 即可:
<!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script> <![endif]-->
注意:通常配合条件注释使用,仅在 IE9 以下版本加载,避免现代浏览器额外开销。
注意事项
- 仅支持
min-width和max-width的媒体查询 - 不支持
@import引入的 CSS 文件(需使用<link>) - 本地文件(
file://)在 IE 中可能因安全限制无法加载 CSS - 现代项目中已较少使用,建议优先考虑渐进增强或放弃对 IE8 的支持
替代方案
随着 IE 市场份额趋近于零,许多开发者已不再使用 Respond.js。推荐做法包括:
- 使用现代 CSS 技术(如 Flexbox、Grid)构建响应式布局
- 通过
<meta name="viewport">确保移动端适配 - 采用 CSS 自定义属性(变量)和容器查询(Container Queries)提升灵活性
- 若必须支持旧 IE,可考虑 Polyfill 集合如 Modernizr