link标签必须放在<head>中且rel="stylesheet"不可省略,否则CSS虽下载但不解析;href路径需用根相对路径或绝对URL;rel="stylesheet"是样式生效的唯一依据,type="text/css"可省略。
link 标签必须放在 <head> 里,且 rel="stylesheet" 不能省——漏掉它,CSS 文件照常下载,但浏览器根本不会解析样式。浏览器按 HTML 文本顺序解析,CSS 是渲染阻塞资源。如果 link 放在 <body> 里或底部:
max-width: 768px)可能失效——样式表还没加载完,断点就错过了相对路径不是按 URL 算,而是按当前 HTML 文件所在目录算。比如 /blog/article.html 里写 href="css/main.css",浏览器实际请求的是 /blog/css/main.css,而非你期望的 /css/main.css。
link 发起的href="/css/main.css"(开头带 /)href="https://cdn.example.com/css/main.css",但记得配 SRI(integrity 属性)HTML5 规范中 type="text/css" 已是默认值,显式声明纯属冗余;而 rel="stylesheet" 才是浏览器识别“这是要解析并应用的样式表”的唯一依据。
rel="style"、rel="css" 或漏掉 rel,样式一律不生效link,手动补写容易重复或路径错位media 隔离:<link rel="stylesheet" href="print.css" media="print">,它仍下载,但不参与首屏渲染CSS 加载是串行阻塞的:浏览器按 link 出现顺序依次下载、解析、构建 CSSOM。后加载的规则才能覆盖前面同选择器的声明。
normalize.css → 框架 CSS(如 bootstrap.min.css)→ 自定义样式(custom.css)@import 仍应避免——它在 CSS 内部触发串行加载,比 link 更慢rel="stylesheet" 这个属性本身——它不像 href 那样报 404,也不像路径错那样有明显提示,而是静默失效:文件下载成功、控制台无报错、开发者工具 Network 里绿勾全亮,但页面就是没样式。