要标识网页的侧边栏,最佳实践是使用语义化的标签,并结合CSS来定义其样式和布局,选择哪个标签取决于侧边栏在整个页面结构中的功能和重要性。

html什么标签标识网页侧边栏
(图片来源网络,侵删)

下面我将从最推荐到其他可选方案,为你详细解释。


最推荐和语义化的选择:<aside>

这是专门为“侧边栏”或“附属内容”设计的HTML5语义化标签,强烈推荐使用

为什么使用 <aside>

  • 语义清晰:它向浏览器、搜索引擎和屏幕阅读器明确地表明,这部分内容与页面主要内容相关,但不是核心,它可以是相关文章链接、作者信息、广告、导航等。
  • SEO友好:搜索引擎能更好地理解页面结构,<aside> 里的内容不会被误认为是正文的核心内容。
  • 可访问性好:使用辅助技术(如屏幕阅读器)的用户能更容易地识别和导航到侧边栏。

如何使用?

你通常会将 <aside> 放在一个容器中(如 <div>),并使用CSS(如Flexbox或Grid)来将其定位到页面的侧边。

示例代码:

html什么标签标识网页侧边栏
(图片来源网络,侵删)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">使用 aside 标签的侧边栏</title>
    <style>
        body {
            display: flex; /* 使用 Flexbox 布局 */
            font-family: sans-serif;
        }
        main {
            flex: 1; /* main 内容区域占据剩余所有空间 */
            padding: 20px;
        }
        aside {
            width: 250px; /* 定义侧边栏宽度 */
            padding: 20px;
            background-color: #f4f4f4;
            border-left: 1px solid #ddd;
        }
    </style>
</head>
<body>
    <main>
        <h1>主要内容</h1>
        <p>这里是页面的核心内容,比如文章正文或产品介绍。</p>
    </main>
    <aside>
        <h2>相关链接</h2>
        <ul>
            <li><a href="#">文章 1</a></li>
            <li><a href="#">文章 2</a></li>
            <li><a href="#">文章 3</a></li>
        </ul>
    </aside>
</body>
</html>

经典且灵活的选择:<nav>

如果你的侧边栏主要功能是提供网站的导航链接(比如主导航菜单的侧边版本),<nav> 是一个更精确的选择。

为什么使用 <nav>

  • 专门用于导航:它清晰地告诉浏览器和用户,这个区域包含的是指向网站其他主要页面的链接。
  • 可访问性:屏幕阅读器用户可以快速跳转到 <nav> 区域,而无需阅读整个页面内容。

如何与 <aside> 结合?

一个页面可以有多个 <nav>,页眉处有一个主导航 <nav>,侧边栏也可以有一个导航 <nav>,如果侧边栏除了导航还有其他内容(比如广告),最外层可以用 <aside> 包裹,里面再放 <nav>

示例代码:

<body>
    <header>
        <!-- 网站头部 -->
    </header>
    <div class="main-container">
        <main>
            <!-- 主要内容 -->
        </main>
        <aside>
            <h3>网站导航</h3>
            <nav>
                <ul>
                    <li><a href="/">首页</a></li>
                    <li><a href="/about">关于我们</a></li>
                    <li><a href="/services">服务</a></li>
                    <li><a href="/contact">联系我们</a></li>
                </ul>
            </nav>
            <h3>赞助商</h3>
            <p>这里是广告内容...</p>
        </aside>
    </div>
</body>

通用但不够语义化的选择:<div>

在过去,或者在一些非常简单的场景下,开发者会使用 <div> 来创建侧边栏。

为什么使用 <div>

  • 简单直接<div> 是一个块级容器,没有任何默认样式,纯粹用来包裹和布局内容。
  • 兼容性好:所有浏览器都支持。

为什么不推荐作为首选?

  • 没有语义:它只是一个“盒子”,对于机器来说,它和包裹文章的 <div> 没有任何区别,这不利于SEO和可访问性。
  • 过度使用:滥用 <div> 会导致HTML结构混乱,难以维护。

什么时候可以考虑用?非常简单,且不包含重要的、需要被机器识别的结构信息时,或者当你使用一些UI框架(如Bootstrap)时,它们通常会提供一个基于 <div> 的类名来定义侧边栏。

示例代码:

<body>
    <div class="content-wrapper">
        <div class="main-content">
            <!-- 主要内容 -->
        </div>
        <div class="sidebar">
            <!-- 侧边栏内容 -->
        </div>
    </div>
</body>

这里的 class="sidebar" 是给CSS用的,用来选择和样式化这个 <div>


总结与最佳实践

语义 适用场景 推荐度
<aside> 侧边栏包含相关链接、广告、作者信息、标签云等,与主内容相关但非核心。 ⭐⭐⭐⭐⭐ (首选)
<nav> 导航链接 侧边栏的主要功能是提供网站的导航菜单。 ⭐⭐⭐⭐ (当侧边栏是导航时)
<div> 无语义(通用容器) 快速原型开发、内容非常简单、或依赖CSS类名(如Bootstrap的 .sidebar)时。 ⭐⭐ (尽量避免作为首选)

最终建议:

  1. 优先使用 <aside>:如果你的侧边栏不是主导航,就用 <aside>
  2. 使用 <nav>:如果侧边栏是导航,就用 <nav>
  3. 结合使用:一个侧边栏可以包含多个部分,例如一个 <nav> 和一个广告 <div>,它们可以被一个大的 <aside> 包裹起来,表示整个区域都是附属内容。
  4. 用CSS定位:无论你选择哪个HTML标签,最终都是通过CSS(如Flexbox, Grid, 或 position 属性)来将其“推”到页面的侧边位置,HTML负责“是什么”,CSS负责“长什么样”和“在哪”。