section与article的区别与使用场景

H5中的<section><article>都是用于文档结构化的语义化标签,但它们有不同的用途。下面我将详细解释它们的区别、使用场景以及如何避免混淆。

如何区分?

关键问题:这段内容在脱离上下文后是否还有意义?

  • 如果一段内容可以被单独拆分并在其他网站或平台上使用,那么它很可能是一个<article>
  • 如果一段内容只是文档中的一个部分,它和文档的其他部分共同组成一个整体,那么它可能是一个<section>

另外,<article>内部可以有多个<section>,而<section>内部也可以有多个<article>。这取决于你的内容结构。

代码示例

示例1:博客文章页面

html 复制代码
<article>
  <header>
    <h1>博客文章标题</h1>
    <p>发布日期:<time datetime="2023-10-01">2023年10月1日</time></p>
  </header>
  <section>
    <h2>引言</h2>
    <p>这是文章的引言部分。</p>
  </section>
  <section>
    <h2>第一章</h2>
    <p>第一章的内容。</p>
  </section>
  <section>
    <h2>第二章</h2>
    <p>第二章的内容。</p>
  </section>
  <footer>
    <p>文章标签:HTML,语义化</p>
  </footer>
</article>

示例2:新闻网站首页

html 复制代码
<main>
  <section>
    <h2>国内新闻</h2>
    <article>
      <h3>新闻标题1</h3>
      <p>新闻摘要1</p>
    </article>
    <article>
      <h3>新闻标题2</h3>
      <p>新闻摘要2</p>
    </article>
  </section>
  <section>
    <h2>国际新闻</h2>
    <article>
      <h3>新闻标题3</h3>
      <p>新闻摘要3</p>
    </article>
  </section>
</main>

容易混淆的情况

一个独立的、可重用的内容块,但不是一个完整的文章?

  • 例如:一个用户评论。虽然它可能不长,但它是一个独立的内容单元,应该用<article>
  • 注意:<article>不一定很长,只要它是独立的。

注意

  • 对于<sectio>,规范建议包含一个标题。但如果你不想显示标题,也可以使用隐藏标题(例如用CSS隐藏)。
  • 对于<article>,虽然标题不是强制的,但最好包含一个标题(可以是隐式的,通过aria-label等属性描述)。

总结

<article>是一个独立的整体,内部包含这个整体中的各个部分,如:<header><footer><section>就是这个整体中的一个部分。

相关推荐
ZHOUPUYU21 小时前
PHP性能分析与调优:从定位瓶颈到实战优化
开发语言·后端·html·php
Dxy12393102161 天前
HTML常用布局详解:从基础到进阶的网页结构指南
前端·html
柒.梧.2 天前
Redis通用命令+五大核心数据结构
前端·bootstrap·html
Dxy12393102162 天前
HTML常用标签详解
前端·html
Predestination王瀞潞2 天前
5.4.1 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web)基本信息&核心设计目标&现实意义
css·网络·网络协议·html·url·www
小J听不清2 天前
CSS 外边距(margin)全解析:取值规则 + 实战用法
前端·javascript·css·html·css3
小J听不清2 天前
CSS 边框(border)全解析:样式 / 宽度 / 颜色 / 方向取值
前端·javascript·css·html·css3
赵锦川3 天前
大屏比例缩放
前端·javascript·html
我命由我123453 天前
Element Plus 2.2.27 的单选框 Radio 组件,选中一个选项后,全部选项都变为选中状态
开发语言·前端·javascript·html·ecmascript·html5·js
dzj8883 天前
云朵字生成器-html
前端·css·html·云朵字