[分享]CSS的基本语法
引言:
CSS 基本语法是样式表语言的核心规则体系,涵盖选择器、属性、值、声明块等基础结构。本文系统讲解 CSS 的语法规则、选择器分类、单位使用、继承与层叠机制及常用样式属性。
CSS 基本语法详解
CSS 的语法结构简单直观,掌握它并不困难。它的核心就是一套"规则":告诉浏览器,哪些元素要变,变成什么样。本文将系统讲解 CSS 的基本语法规则。
一、CSS 规则的基本结构
一条 CSS 规则由两部分组成:
1 | 选择器 { |
| 组成部分 | 说明 | 示例 |
|---|---|---|
| 选择器 | 决定哪些 HTML 元素会被应用样式 | p(所有段落)、.intro(所有 class 为 intro 的元素) |
| 声明块 | 用花括号 {} 包裹,包含多条声明 |
{ color: blue; font-size: 16px; } |
| 属性 | 要修改的样式特征 | color、font-size、margin |
| 值 | 属性的具体设置 | red、16px、10px |
| 分号 | 用于分隔多条声明 | 每条声明结束后加 ; |
一个完整的示例
1 | /* 将所有 h1 元素的文字设为蓝色,字号为 24px,居中对齐 */ |
二、注释
CSS 中使用 /* ... */ 表示注释,注释内容不会被浏览器解析和执行,用于添加说明或临时禁用代码。
1 | /* 这是单行注释 */ |
三、选择器详解
选择器是 CSS 中最核心的部分,决定了样式的作用范围。
1. 基本选择器
| 选择器 | 语法 | 示例 | 匹配对象 |
|---|---|---|---|
| 标签选择器 | 标签名 |
p |
所有 <p> 元素 |
| 类选择器 | .类名 |
.intro |
所有 class="intro" 的元素 |
| ID 选择器 | #ID名 |
#header |
id="header" 的元素 |
| 通配选择器 | * |
* |
页面所有元素 |
| 群组选择器 | A, B |
h1, h2, .intro |
同时选中多个选择器匹配的元素 |
示例:
1 | /* 标签选择器:所有段落文字为灰色 */ |
2. 组合选择器
通过组合多个选择器,可以更精确地定位元素。
| 选择器 | 语法 | 示例 | 匹配对象 |
|---|---|---|---|
| 后代选择器 | A B |
div p |
div 内部所有 <p> 元素 |
| 子选择器 | A > B |
div > p |
div 直接子级中的 <p> 元素 |
| 相邻兄弟选择器 | A + B |
h1 + p |
紧跟在 h1 后面的 <p> 元素 |
| 通用兄弟选择器 | A ~ B |
h1 ~ p |
h1 后面所有同级的 <p> 元素 |
示例:
1 | /* 后代选择器:div 内部的所有段落(不论嵌套多深) */ |
3. 属性选择器
根据元素的属性和属性值来匹配元素。
| 选择器 | 语法 | 示例 | 匹配对象 |
|---|---|---|---|
| 存在属性 | [属性] |
[disabled] |
所有带有 disabled 属性的元素 |
| 精确匹配 | [属性="值"] |
[type="text"] |
type 属性值为 "text" 的元素 |
| 包含匹配 | [属性*="值"] |
[class*="btn"] |
class 属性中包含 "btn" 的元素 |
| 前缀匹配 | [属性^="值"] |
[href^="https"] |
href 属性以 "https" 开头的元素 |
| 后缀匹配 | [属性$="值"] |
[src$=".jpg"] |
src 属性以 ".jpg" 结尾的元素 |
| 空格列表匹配 | [属性~="值"] |
[class~="active"] |
class 属性列表中包含 "active" 的元素 |
示例:
1 | /* 所有禁用状态的输入框背景变灰 */ |
4. 伪类选择器
伪类用于选中元素的特定状态,而不是元素本身。
| 选择器 | 说明 | 示例 |
|---|---|---|
:hover |
鼠标悬停时 | a:hover { color: red; } |
:active |
被激活(点击)时 | button:active { transform: scale(0.95); } |
:focus |
获得焦点时 | input:focus { border-color: blue; } |
:visited |
已访问过的链接 | a:visited { color: purple; } |
:first-child |
父元素的第一个子元素 | p:first-child { font-weight: bold; } |
:last-child |
父元素的最后一个子元素 | p:last-child { margin-bottom: 0; } |
:nth-child(n) |
父元素的第 n 个子元素 | li:nth-child(2) { color: red; } |
:not(选择器) |
排除某些元素 | p:not(.intro) { color: gray; } |
:first-of-type |
同类型中的第一个 | p:first-of-type { font-size: 18px; } |
:nth-of-type(n) |
同类型中的第 n 个 | p:nth-of-type(2) { color: blue; } |
示例:
1 | /* 鼠标悬停时链接变红且加下划线 */ |
5. 伪元素选择器
伪元素用于选中元素的特定部分,而不是整个元素。
| 选择器 | 说明 | 示例 |
|---|---|---|
::before |
在元素内容之前插入内容 | p::before { content: "→ "; } |
::after |
在元素内容之后插入内容 | p::after { content: " ←"; } |
::first-line |
元素的第一行文本 | p::first-line { font-weight: bold; } |
::first-letter |
元素的第一个字母 | p::first-letter { font-size: 200%; } |
::selection |
用户选中的文本 | ::selection { background: yellow; } |
示例:
1 | /* 在链接前添加一个图标 */ |
四、CSS 的单位
CSS 支持多种单位,用于指定长度、大小、间距等数值。
1. 绝对单位
绝对单位是固定的物理尺寸,适用于打印样式或尺寸固定不变的元素。
| 单位 | 说明 | 示例 |
|---|---|---|
px |
像素,最常用 | font-size: 16px; |
pt |
点,常用于打印 | font-size: 12pt; |
cm |
厘米 | margin: 1cm; |
mm |
毫米 | padding: 5mm; |
in |
英寸(1in = 2.54cm) | width: 1in; |
2. 相对单位
相对单位相对于其他基准值,更适合响应式设计。
| 单位 | 相对于什么 | 示例 |
|---|---|---|
% |
父元素的相同属性值 | width: 50%; |
em |
当前元素的字体大小 | font-size: 1.5em; |
rem |
根元素(<html>)的字体大小 |
font-size: 1.2rem; |
vw |
视口宽度的 1% | width: 50vw; |
vh |
视口高度的 1% | height: 100vh; |
vmin |
vw 和 vh 中较小的那个 |
font-size: 5vmin; |
vmax |
vw 和 vh 中较大的那个 |
font-size: 5vmax; |
ch |
数字"0"的宽度 | width: 20ch; |
最佳实践:rem 是目前最推荐的尺寸单位,因为它是相对于根字体大小的,便于统一控制全局尺寸;px 适合需要精确定义的场景(如边框、阴影);% 适合布局比例。
五、CSS 的继承与层叠
继承
某些 CSS 属性会从父元素传递给子元素,这被称为"继承"。例如:
1 | /* body 的字体设置会继承给所有子元素 */ |
常见的可继承属性:color、font-family、font-size、line-height、text-align。不可继承的属性:width、height、margin、padding、border、background。
可以使用 inherit 强制子元素继承父元素的某个属性:
1 | a { |
层叠
当多个选择器作用于同一个元素时,浏览器按以下顺序决定最终样式(优先级从低到高):
- 浏览器默认样式
- 外部样式表(按引用顺序,后引用的覆盖先引用的)
- 内部样式表(
<style>中的样式) - 内联样式(写在
style属性中) !important声明(最高优先级,尽量避免使用)
1 | /* 尽量避免使用 !important,它会破坏正常的层叠规则 */ |
优先级计算
选择器的优先级可以用一个"权重"来衡量(从高到低):
- ID 选择器:权重 100
- 类选择器、属性选择器、伪类:权重 10
- 标签选择器、伪元素:权重 1
- 通配选择器、组合选择器:权重 0
1 | /* 权重 = 1(标签选择器 p) */ |
六、常用 CSS 属性速查
文本样式
1 | color: red; /* 文字颜色 */ |
背景样式
1 | background-color: #f0f0f0; /* 背景色 */ |
边框样式
1 | border-width: 2px; /* 边框宽度 */ |
盒模型
1 | width: 200px; /* 宽度 */ |
总结
CSS 的基本语法虽然简单,但其背后包含了一套精密的选择器体系和优先级规则。掌握这些语法规则,是编写规范、高效、可维护的样式代码的基础。无论你是刚开始学习 CSS,还是有一定经验的开发者,扎实的语法基础都会让你在编写样式时更加得心应手。下一步,推荐继续学习 盒模型 和 布局(Flexbox/Grid) 相关内容,它们是构建复杂页面布局的核心技能。






![[分享]PHP的SQLite数据库调用](/../blogimage/260807/260807_4.webp)
![[分享]PHP的PgSQL数据库调用](/../blogimage/260807/260807_3.webp)