可通过 标签的media 属性实现条件加载 CSS,匹配时下载并应用,不匹配时(如 media="print")通常不下载以节省带宽;推荐显式声明互斥断点(如 max-width: 767px 与 min-width: 768px),避免重叠与冲突。
可以通过 标签的 media 属性配合媒体查询,实现按条件加载 CSS 文件,从而只在满足特定设备或视口条件时下载并应用对应样式表。
media 属性不仅决定样式是否生效,还影响浏览器是否下载该 CSS 文件(现代浏览器大多支持“惰性加载”)。
media 值为不匹配当前环境的媒体查询(如 media="print" 在屏幕浏览时),浏览器通常不会下载该 CSS,节省带宽media="all" 或省略 media,则始终下载并解析多个 使用互斥媒体查询时,浏览器只加载匹配的一份;但需注意:
max-width: 768px 和 min-width: 768px 在 768px 宽度下会同时命中),建议用 max-width: 767px 和 min-width: 768px 明确切分media 完全阻止加载?可搭配 rel="preload" + onload 动态注入,实现更精细控制(进阶场景)@import 要谨慎@import 写在 CSS 文件中也能加媒体查询,但存在明显缺点:
@import 的资源还会额外发起请求,而非 CSS 内的 @import
媒体查询条件应围绕真实设计需求设定,而非设备型号:
(max-width: 575px)(超小屏)、(min-width: 576px)(手机横屏/小平板)、(min-width: 768px)(平板)、(min-width: 992px)(桌面)、(min-width: 1200px)(大桌面)