最稳妥方式是用引入外部css,必须置于中且rel值严格为stylesheet;@import会阻塞渲染并仅限css内使用,行内style破坏分离原则,均不推荐为主方案。

直接用 <link> 标签引入外部 CSS 是最稳妥、最符合 XHTML 规范的做法,@import 和行内 style 属性虽可用,但各有明显限制,不推荐作为主方案。
必须用 <link rel="stylesheet"> 而不是 @import
XHTML 文档中,<link> 是 W3C 推荐的、语义明确的外部资源关联方式;而 @import 是 CSS 规则,只能出现在 <style></style> 块或另一个 CSS 文件里,不能直接写在 XHTML 的 中(除非包裹在 <style></style> 里)。更重要的是:@import 会阻塞渲染——浏览器先加载 HTML,再解析 CSS 后才去抓取被导入的文件,容易造成 FOUC(Flash of Unstyled Content)。
-
<link rel="stylesheet" type="text/css" href="main.css">必须放在内,且rel值严格为stylesheet(大小写敏感) -
type="text/css"在 XHTML 1.0 中是必需属性,不可省略(HTML5 可省,但 XHTML 不行) -
href值需是相对路径或绝对 URI,不能是 bare name(如main.css可以,css/main不行)
行内 style 属性能用,但仅限调试或极少数动态场景
在 XHTML 中给单个元素加 style="..." 是合法的,但属于“覆盖优先级最高”的临时手段,不是引入 CSS 的方式。它破坏结构与样式的分离原则,且无法复用、难维护。
- 所有属性值必须加引号,例如
style="color: red; font-size: 14px;"—— XHTML 不允许无引号的属性值 - 分号结尾不是可选的:漏掉最后一个分号不会报错,但若后续追加规则易出错
- 禁止在
或元数据标签(如<meta>、<title></title>)中使用style属性
<style></style> 块必须声明 type,且只放 CSS 规则
内嵌样式要用 <style></style>,但 XHTML 要求显式声明 type="text/css",否则文档将不通过验证。它适合页面专属样式,比如某页独有的动画或响应式断点。
- 必须闭合:写成
<style type="text/css">...</style>,自闭合写法<style ...></style>无效 - 内容里不能混 HTML 注释(如
<!-- ... -->),CSS 注释只能用/* ... */ - 如果同时用了
@import,它必须是<style></style>块里的第一条规则,否则被忽略
别踩这些 XHTML 特有坑
XHTML 对语法比 HTML 严格得多,引入 CSS 时稍不注意就会让整个文档变成“XML 解析错误”。
- 所有标签名和属性名必须小写:
<link>、REL、HREF都非法;正确是<link>、rel、href - 空元素(如
<link>)必须自闭合:<link ...>,不能写成<link> - 路径中的中文或空格必须 URL 编码,例如
样式.css要写成%E6%A0%B7%E5%BC%8F.css,否则解析失败 - 如果服务器返回的 MIME 类型不是
application/xhtml+xml,浏览器可能退化为 HTML 模式处理,此时部分 XHTML 规则(如大小写)会失效——但这不代表你可以依赖它
真正麻烦的从来不是“怎么写”,而是“为什么写了却没生效”:XHTML 下一个字母大小写错误、一个斜杠遗漏、一个引号缺失,都可能导致样式表完全不加载。验证器(如 W3C Markup Validation Service)不是可选项,是必经步骤。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











