Skip to content

<section> 标签

<section> 标签用于定义文档中的章节或区段。它表示文档中的一个独立部分,通常包含一个主题。

概述

<section> 标签是 HTML5 中引入的语义化标签,用于定义文档中的独立章节。每个 <section> 通常都有一个主题,并且通常包含一个标题。

语法

html
<section>
  <h2>章节标题</h2>
  <!-- 章节内容 -->
</section>

基本用法

简单章节

html
<section>
  <h2>产品介绍</h2>
  <p>我们的产品具有以下特点...</p>
</section>

<section>
  <h2>客户评价</h2>
  <p>客户对我们的产品评价很高...</p>
</section>

带有辅助内容的章节

html
<section>
  <h2>关于我们</h2>
  <p>公司简介...</p>
  
  <section>
    <h3>公司历史</h3>
    <p>公司发展历程...</p>
  </section>
  
  <section>
    <h3>团队介绍</h3>
    <p>团队成员介绍...</p>
  </section>
</section>

实际示例

完整页面结构

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>section 标签示例</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      line-height: 1.6;
      max-width: 1200px;
      margin: 0 auto;
      padding: 20px;
    }
    
    section {
      margin-bottom: 2rem;
      padding: 1.5rem;
      border: 1px solid #ddd;
      border-radius: 5px;
    }
    
    section > section {
      margin-bottom: 1.5rem;
      padding: 1rem;
      background-color: #f9f9f9;
      border: 1px solid #eee;
    }
    
    h2, h3 {
      color: #333;
      margin-top: 0;
    }
  </style>
</head>
<body>
  <header>
    <h1>网页开发教程</h1>
  </header>
  
  <main>
    <section>
      <h2>HTML 基础</h2>
      <p>HTML 是网页开发的基础,它定义了网页的结构...</p>
      
      <section>
        <h3>HTML 标签</h3>
        <p>HTML 标签是 HTML 元素的组成部分...</p>
      </section>
      
      <section>
        <h3>HTML 属性</h3>
        <p>HTML 属性提供了有关 HTML 元素的附加信息...</p>
      </section>
    </section>
    
    <section>
      <h2>CSS 样式</h2>
      <p>CSS 用于控制网页的外观和布局...</p>
      
      <section>
        <h3>选择器</h3>
        <p>CSS 选择器用于选择要设置样式的 HTML 元素...</p>
      </section>
      
      <section>
        <h3>盒模型</h3>
        <p>CSS 盒模型描述了 HTML 元素如何在页面中显示...</p>
      </section>
    </section>
  </main>
  
  <footer>
    <p>&copy; 2023 网页开发教程</p>
  </footer>
</body>
</html>

博客文章结构

html
<article>
  <header>
    <h1>如何学习网页开发</h1>
    <p>发布于 <time datetime="2023-01-01">2023年1月1日</time></p>
  </header>
  
  <section>
    <h2>引言</h2>
    <p>网页开发是一个充满挑战和机遇的领域...</p>
  </section>
  
  <section>
    <h2>HTML 基础</h2>
    <p>学习网页开发的第一步是掌握 HTML...</p>
    
    <section>
      <h3>什么是 HTML</h3>
      <p>HTML 是超文本标记语言的缩写...</p>
    </section>
    
    <section>
      <h3>HTML 文档结构</h3>
      <p>一个基本的 HTML 文档包含以下结构...</p>
    </section>
  </section>
  
  <section>
    <h2>CSS 样式</h2>
    <p>在掌握 HTML 之后,下一步是学习 CSS...</p>
  </section>
  
  <footer>
    <p>标签: <a href="/tags/html">HTML</a>, <a href="/tags/css">CSS</a></p>
  </footer>
</article>

与相关标签的区别

<div> 的区别

html
<!-- 不推荐:使用 div 表示章节 -->
<div>
  <h2>章节标题</h2>
  <p>章节内容...</p>
</div>

<!-- 推荐:使用语义化的 section 标签 -->
<section>
  <h2>章节标题</h2>
  <p>章节内容...</p>
</section>

<article> 的区别

html
<!-- article 表示独立的内容,如博客文章、新闻等 -->
<article>
  <h2>如何学习 HTML</h2>
  <p>完整的学习指南...</p>
</article>

<!-- section 表示文档中的章节 -->
<section>
  <h2>HTML 基础</h2>
  <p>HTML 的基础知识...</p>
</section>

无障碍访问

正确使用标题层级

html
<section>
  <h2>主章节</h2>
  <p>章节内容...</p>
  
  <section>
    <h3>子章节</h3>
    <p>子章节内容...</p>
  </section>
</section>

响应式章节布局

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>响应式章节</title>
  <style>
    .sections-container {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 2rem;
    }
    
    section {
      background-color: white;
      padding: 2rem;
      border-radius: 8px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
      transition: transform 0.3s ease;
    }
    
    section:hover {
      transform: translateY(-5px);
    }
    
    @media (max-width: 768px) {
      .sections-container {
        grid-template-columns: 1fr;
      }
      
      section {
        padding: 1.5rem;
      }
    }
  </style>
</head>
<body>
  <main>
    <div class="sections-container">
      <section>
        <h2>HTML 教程</h2>
        <p>学习 HTML 基础知识,掌握网页结构的构建方法。</p>
      </section>
      
      <section>
        <h2>CSS 样式</h2>
        <p>了解 CSS 样式表,美化网页外观和布局。</p>
      </section>
      
      <section>
        <h2>JavaScript 交互</h2>
        <p>掌握 JavaScript 编程,为网页添加动态交互功能。</p>
      </section>
    </div>
  </main>
</body>
</html>

最佳实践

  1. 语义化使用:只在表示文档中的独立章节时使用
  2. 包含标题:每个 <section> 通常应该包含一个标题(h1-h6)
  3. 主题相关:每个章节应该围绕一个特定主题
  4. 嵌套合理:可以嵌套使用,但要保持清晰的层级结构
  5. 避免滥用:不要为每个段落都使用 <section> 标签

浏览器兼容性

<section> 标签在所有现代浏览器中都得到支持:

  • Chrome
  • Firefox
  • Safari
  • Edge
  • Internet Explorer 9+

对于不支持的旧浏览器,可以通过 CSS 显示声明为块级元素:

css
section {
  display: block;
}

注意事项

  1. <section> 标签是块级元素
  2. 每个 <section> 应该围绕一个主题
  3. <section> 通常包含一个标题
  4. <section> 标签没有默认样式,需要通过 CSS 设置
  5. 不要将 <section> 作为设置样式的容器,应使用 <div>

相关标签