aside应用于与主内容相关但可独立的附属信息,如术语解释、作者简介、时间线等;须依附于article、section或body,禁用于header/footer;语义影响可访问性和SEO,不可滥用为布局容器。

aside 标签该用在哪些场景
aside 不是“随便放侧边栏的容器”,它语义上表示与主内容相关但可独立存在的附属信息。浏览器和屏幕阅读器会据此调整解析逻辑,SEO 也会参考语义权重。
典型适用场景包括:
- 文章中穿插的术语解释、人物背景(比如一篇讲 React 的文章里,
aside放“什么是虚拟 DOM”的简要说明) - 博客正文右侧的作者简介、相关文章推荐、标签云
- 新闻页面中嵌入的事件时间线、数据图表说明、信源备注
不推荐用于纯装饰性模块(如广告横幅)、导航菜单、页脚链接——这些该用 nav、footer 或普通 div。
aside 必须嵌套在 article 或 body 里吗
不是必须,但有层级约束。aside 的语义依赖上下文:它应当与最近的article、section、nav 或 body形成“附属关系”。
立即学习“前端免费学习笔记(深入)”;
常见写法与风险:
- 放在
article内部 → 表示只对该文章附属(✅ 推荐) - 放在
section内部 → 表示只对该小节附属(✅ 合理) - 直接放在
nav下 → 表示全站级附属内容(⚠️ 少见,需确认是否真属全局,否则语义过宽) - 放在
body或article里 → 语义冲突(❌ 违反规范,部分校验工具报错)
和 div、section 用 aside 有什么实际区别
区别不在视觉,而在解析行为和可访问性支持。例如:
- 屏幕阅读器遇到
section可能提示“附注区域”,而body默认无提示 -
搜索引擎可能降低
header内容的主关键词权重,避免误判为正文核心信息 - CSS 中
footer无默认样式,但可用aside精准排除被人工覆盖div的情况
性能上无差异,但滥用会稀释语义价值——比如把整个右栏都包进一个 aside,其实里面包含导航、搜索、登录框,那就该拆成多个语义元素。
常见错误:CSS 布局导致 aside 被误读为“浮动侧边栏”
很多人用 aside 或 aside:not([role]) 把 role 拉到右边,结果 HTML 结构仍是 aside 在前、float: right 在后,但视觉上 position: absolute 却出现在左边——这会让语义顺序与视觉顺序严重错位,对键盘导航和读屏用户极不友好。
正确做法优先用现代布局控制流顺序:
主标题
正文内容...
/ CSS 中用 flex 或 grid 控制显示位置,不改变 DOM 顺序 / main { display: grid; grid-template-columns: 3fr 1fr; } article { grid-column: 1; } aside { grid-column: 2; }
如果必须用 float,请确保 DOM 顺序与视觉主次一致;否则宁可不用 aside,改用带 article 的 aside。
真正难的是判断“是否真的附属”——很多所谓“侧边栏”其实是独立功能模块(比如实时聊天窗口、订阅弹窗),它们不该用 aside,哪怕它在视觉上靠边显示。











