link 标签加载 CSS 并行高效,@import 串行阻塞渲染;前者支持 preload、media 懒加载和 JS 动态控制,后者无此能力且易隐式拖慢首屏,现代项目应避免使用。link 标签加载 CSS 是并行的,@import 是串行阻塞的浏览器解析 HTML 时,遇到 <link rel="stylesheet"> 会立即发起网络请求,并且多个 <link> 之间默认并行下载;而 @import 写在 CSS 文件里(或 <style> 块中),会等到父样式表下载、解析完才开始加载被 import 的资源,形成隐式串行链。这意味着一个 @import url("a.css") 后面再 @import url("b.css"),b 必须等 a 完全就绪才能启动请求。常见错误现象:PageSpeed Insights 报告 "Render-blocking resources",但你检查 HTML 只有 1 个 <link>,实际是它引入的 CSS 里嵌了多层 @import,把关键样式拖慢了 2--3 秒。使用场景:仅在需要条件化加载(如 IE 专用 hack)或维护遗留 CSS 拆分逻辑时才考虑 @import,现代项目应避免性能影响:实测 3 层 @import 在弱网下可比等效 <link> 多出 800ms+ 首屏阻塞时间兼容性无差别:所有浏览器都支持两者,但 @import 在 CSS 文件内不支持媒体查询动态匹配(<link media="print"> 可提前排除)link 标签支持 preload 和 media 属性,@import 不支持<link> 可以配合 rel="preload" 提前拉取关键 CSS,也能用 media 属性做媒体查询懒加载(比如 media="print" 的样式不会阻塞屏幕渲染);@import 完全没这些能力,写进去就强制加载。典型误用:@import url("mobile.css") screen and (max-width: 768px) ------ 这句语法无效,@import 后的媒体查询只在 CSS 解析阶段生效,无法阻止初始下载。立即学习"前端免费学习笔记(深入)"; Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计
相关推荐
泡海椒6 分钟前
JQuick-Excel 实战:用 STYLE 配置单元格与区域样式威联通网络存储11 分钟前
TS-h1283XU-RP 在医药批记录与检验场景的部署Patrick在香港20 分钟前
时间戳凭空早了 8 小时:datetime.utcnow() 弃用实测与漂移复盘东莞市云毅网络有限公司7 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现李兆龙的博客8 小时前
问津集 #26:Lakebase——Postgres 的版本化页面存储、数据库分支与计算弹性数字融合9 小时前
透明化视频三维矿山井下照明重建技术yi0119 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”Marst Code10 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界倔强的石头_10 小时前
聊聊金仓KFS:一款把数据同步软件做扎实的产品闲云野鹤在人间11 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解