可通过HTML的标签配合media属性按屏幕宽度加载对应CSS文件,实现响应式按需引入;现代浏览器惰性加载未匹配文件以节省资源,但过多独立文件会增加HTTP请求影响性能,小范围调整推荐单CSS内@media更高效。
可以通过 HTML 的 标签配合 media 属性,在不同屏幕宽度下加载对应的 CSS 文件,实现按需引入。
浏览器会根据 media 属性的媒体查询条件,决定是否下载并应用该 CSS 文件。未匹配时,文件通常不下载(现代浏览器支持惰性加载),节省带宽和资源。
大的响应式方案(如移动端/桌面端完全不同的布局)在 中写多个 ,每个指定不同 media 值:
这样,设备宽度落在哪个区间,就加载对应文件。浏览器自动处理匹配逻辑,无需 JS 干预。
主流浏览器都支持该写法(包括 IE9+)。但要注意几点:
media 值必须是有效的媒体查询,不能写错语法(如漏括号、拼错 max-width) 标签仍需保留 rel="stylesheet",否则不会被识别为样式表media="print" 等非屏幕类型混用,除非真有打印样式需求对大多数项目,更推荐把所有响应式规则写在一个 CSS 文件里,用 @media 包裹:
@media (max-width: 767px) {
body { font-size: 14px; }
.header { display: none; }
}
@media (min-width: 768px) {
body { font-size: 16px; }
}
这样只需一次请求,维护集中,也利于缓存复用。只有样式差异极大、体积显著不同时,才考虑拆成多个文件。