文章标题
章节1
章节内容...
章节2
章节内容...
语义化是指使用恰当的 HTML 标签来表达内容的含义,而不是仅仅为了样式。
语义化的好处:
| 非语义化 ❌ | 语义化 ✅ |
|---|---|
| <div class="header">...</div> | <header>...</header> |
| <div class="nav">...</div> | <nav>...</nav> |
| <div class="content">...</div> | <main>...</main> |
| <div class="footer">...</div> | <footer>...</footer> |
HTML5 引入了多个语义化标签:
<header> 页头 | <nav> 导航 | <main> 主体 | <article> 文章
<section> 区块 | <aside> 侧边栏 | <footer> 页脚
<figure> 媒体容器 | <figcaption> 媒体标题
| 标签 | 含义 | 使用场景 |
|---|---|---|
| header | 页头 | Logo、导航、标题 |
| nav | 导航 | 主导航、面包屑 |
| main | 主体 | 页面核心内容(唯一) |
| article | 文章 | 独立的内容块(博客、新闻) |
| section | 区块 | 内容分组(标题+内容) |
| aside | 侧边栏 | 相关链接、广告、标签云 |
| footer | 页脚 | 版权、联系方式、链接 |
| figure | 媒体容器 | 图片、图表、代码示例 |
一个典型的语义化页面结构:
章节内容...
章节内容...
<div> 是最常用的块级元素,用于组合其他元素,形成一个区块。
特点:独占一行,宽度默认100%,可设置宽高。
用途:布局容器、分组元素、CSS 样式载体。
这是一个 div 区块
它独占一行
这是另一个 div 区块
<span> 是最常用的行内元素,用于包裹文本或行内内容。
特点:不独占一行,宽度由内容决定,不能设置宽高(除非转为行内块)。
用途:给文本添加样式、标记、分组行内内容。
这是一段文本,其中 这是 span 包裹的内容,它不会换行。
多个 span 会 并排显示 在同一行。
HTML 元素分为块级元素和行内元素两大类:
| 特性 | 块级元素 | 行内元素 |
|---|---|---|
| 独占一行 | ✅ 是 | ❌ 否 |
| 宽度 | 默认 100% | 由内容决定 |
| 可设置宽高 | ✅ 可以 | ❌ 不可以(除非转行内块) |
| 常见标签 | div, p, h1-h6, ul, ol, li, table, form | span, a, strong, em, img, input |
| 用途 | 布局容器、结构分组 | 文本修饰、行内内容 |
通过 display: inline-block 可以让元素兼具两者特点:
✅ 不独占一行(像行内)
✅ 可设置宽高(像块级)
常见场景:导航按钮、标签、徽章等。
行内块元素之间会出现约 4px 的间隙,这是 HTML 中换行符被解析为空白字符导致的。
以下两个方块之间有间隙(注意红色和蓝色之间的白色缝隙):
三种常见的解决方案: