一、内联样式
概念:直接在 HTML 元素上使用
语法:
优点:优先级最高,可以覆盖其他样式。
缺点:代码重复,难以维护,不推荐使用。
style 属性定义样式。语法:
<div style="属性: 值;">优点:优先级最高,可以覆盖其他样式。
缺点:代码重复,难以维护,不推荐使用。
👇 内联样式演示
这是一个使用内联样式的段落
使用内联样式的标题
1<!-- 内联样式 -->
2<p style="color: blue; font-size: 16px;">这是一个段落</p>
3<h1 style="color: green; font-size: 20px;">这是一个标题</h1>
二、内部样式表
概念:在
语法:
优点:样式与结构分离,便于维护。
缺点:只能在当前页面使用,无法复用。
<head> 中使用 <style> 标签定义样式。语法:
<style> 选择器 { 属性: 值; } </style>优点:样式与结构分离,便于维护。
缺点:只能在当前页面使用,无法复用。
👇 内部样式表演示
这是一个段落(使用内部样式表)
这是一个标题(使用内部样式表)
1<head>
2 <style>
3 p {
4 color: blue;
5 font-size: 16px;
6 }
7
8 h2 {
9 color: red;
10 font-size: 24px;
11 }
12 </style>
13</head>
三、外部样式表
概念:将 CSS 代码保存在独立的
语法:
优点:样式与结构完全分离,可以复用,便于维护。
推荐:这是最常用的导入方式。
.css 文件中,通过 <link> 标签引入。语法:
<link rel="stylesheet" href="style.css">优点:样式与结构完全分离,可以复用,便于维护。
推荐:这是最常用的导入方式。
👇 外部样式表演示
这是一个段落(使用外部样式表)
这是一个标题(使用外部样式表)
1<!-- HTML 文件 -->
2<head>
3 <link rel="stylesheet" href="style.css">
4</head>
5
6/* style.css 文件 */
7p {
8 color: blue;
9 font-size: 16px;
10}
11
12h3 {
13 color: blue;
14 font-size: 18px;
15}
四、@import 导入
概念:在
与 link 的区别:
结论:优先用
<style> 或 CSS 文件中用 @import 导入其他 CSS 文件。与 link 的区别:
@import 先加载 HTML,再加载 CSS(可能闪屏)<link> 并行加载 HTML 和 CSS(性能更好)结论:优先用
<link>,@import 仅用于 CSS 文件内部合并。
👇 @import 用法
/* 方式一:在 style 标签中 */
<style>
@import url("reset.css");
@import url("layout.css");
</style>
/* 方式二:在 CSS 文件开头 */
@import url("variables.css");
@import url("components.css");
1/* link vs @import 对比 */
2
3/* ✅ 推荐:link 方式 */
4<head>
5 <link rel="stylesheet" href="style.css">
6</head>
7
8/* ⚠️ 不推荐:@import 方式 */
9<style>
10 @import url("style.css");
11</style>
12
13/* @import 的唯一优势:可以在 CSS 文件内部合并 */
14/* main.css */
15@import url("header.css");
16@import url("footer.css");
17body { margin: 0; }
五、优先级对比
概念:当多种导入方式同时存在时,按优先级决定谁生效。
优先级从高到低:
1. 内联样式(权重 1000)
2. 内部/外部样式(权重 100)
3. 浏览器默认样式(权重 1)
注意:内部和外部样式优先级相同,后定义的会覆盖先定义的。
优先级从高到低:
1. 内联样式(权重 1000)
2. 内部/外部样式(权重 100)
3. 浏览器默认样式(权重 1)
注意:内部和外部样式优先级相同,后定义的会覆盖先定义的。
👇 优先级演示
内联样式(红色)会覆盖内部样式(蓝色)
1<!-- 优先级演示 -->
2<style>
3 p { color: blue; } /* 内部样式 */
4</style>
5
6<p style="color: red;">内联样式(红色)会覆盖内部样式(蓝色)</p>
7
8/* 最终显示红色,因为内联样式优先级更高 */