定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签引入 HTML。
优点:
案例:
创建 styles.css 文件:
css
1 2 3 4 5 6 7 8 9 |
/* styles.css */ body { font-family: Arial, sans-serif; background-color: #f4f4f4; } h1 { color: #333; text-align: center; } |
在 HTML 中引入:
1 2 3 4 5 6 7 8 9 |
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>外部 CSS 示例</h1> </body> </html> |
定义:将 CSS 代码放在 HTML 文件的 <style> 标签内,通常位于 <head> 中。
适用场景:
案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!DOCTYPE html> <html> <head> <style> body { background-color: lightblue; } h2 { color: navy; margin-left: 20px; } </style> </head> <body> <h2>内部 CSS 示例</h2> </body> </html> |
定义:直接在 HTML 元素的 style 属性中添加 CSS。
特点:
案例:
1 2 3 4 5 6 7 |
<!DOCTYPE html> <html> <body> <h1 style="color:red; text-align:center;">行内 CSS 示例</h1> <p style="font-size:16px; color:blue;">这是一个段落</p> </body> </html> |
方式 1:多个外部 CSS 文件
1 2 3 4 5 |
<head> <link rel="stylesheet" href="reset.css"> <!-- 重置样式 --> <link rel="stylesheet" href="main.css"> <!-- 主样式 --> <link rel="stylesheet" href="responsive.css"> <!-- 响应式样式 --> </head> |
加载顺序规则:
方式 2:内部 CSS 与外部 CSS 混用
1 2 3 4 5 6 7 8 9 |
<head> <link rel="stylesheet" href="base.css"> <!-- 基础样式 --> <style> /* 覆盖外部样式的特定规则 */ h1 { color: purple; /* 会覆盖base.css中的h1颜色 */ } </style> </head> |
单行注释:
1 2 3 4 |
/* 这是一个单行注释 */ body { margin: 0; /* 设置边距为0 */ } |
多行注释:
1 2 3 4 5 6 7 8 9 |
/* 这是一个多行注释 用于说明复杂的样式块 例如:导航栏样式 */ nav { background-color: #333; color: white; } |
注释的最佳实践:
为每个样式区块添加标题注释
1 2 3 4 |
/* 导航栏样式 */ nav { ... } /* 按钮样式 */ .btn { ... } |
解释复杂的样式逻辑
1 2 3 4 |
/* 使用calc()动态计算宽度,减去滚动条宽度 */ .container { width: calc(100% - 17px); /* 减去垂直滚动条宽度 */ } |
标记临时样式
1 2 3 4 |
/* TODO: 完成后删除 - 测试用样式 */ .temp-style { border: 1px solid red; } |
当同一元素有多个冲突样式时,优先级从高到低:
记忆口诀:
行内 > 内部 > 外部 > 默认
优先使用外部 CSS
便于维护和缓存,提升网站性能
谨慎使用行内 CSS
仅在需要临时覆盖所有样式时使用
合理拆分样式文件
例如:base.css(基础样式)、layout.css(布局)、components.css(组件)
避免嵌套过深
保持选择器简洁,减少样式计算复杂度
使用注释组织代码
按功能模块分组,提高代码可读性
通过合理选择和组合使用这四种样式应用方式,可以构建出结构清晰、可维护性强的 CSS 代码库。建议初学者从外部 CSS 入手,掌握基本用法后再深入研究样式优先级和高级应用技巧。