aside标签不参与文档大纲生成,仅定义语义关系;其内容需靠标题锚点、css布局和手动链接协同实现非线性导航,删除后主内容须仍完整独立。

aside 标签本身不定义“文档结构”,也不参与大纲生成——它只声明语义关系。你在侧边栏看到的非线性内容(比如术语解释、兼容性备注、作者简介),不是靠 aside 自动组织进结构,而是靠位置绑定 + CSS 布局 + 手动或工具生成的导航锚点协同实现。
为什么 aside 不出现在 VSCode 或 Typora 的大纲里
VSCode 的大纲视图、Typora 的智能目录、R Markdown 的 TOC 渲染,全部基于 HTML 标题元素(h1–h6)解析。而 aside 是语义容器,不是标题节点,不会被任何标准大纲工具识别为可跳转章节。
- 即使你在
aside里写了## 兼容性说明,它仍只是主文档中一个嵌套区块里的二级标题,不会提升到全局大纲层级 - 若想让侧边内容可导航,必须额外添加带
id的标题,并在主文档中手动或用插件插入对应链接(如[兼容性说明](#compat)) - R Markdown 中若用
html_document输出,aside内的标题默认也不会进入自动生成的 TOC,除非显式启用toc: true并配合toc_depth和正确 heading 层级
aside 怎么真正服务“非线性内容”
它的作用不是展示结构,而是划定语义边界:告诉机器“这段内容和旁边主文有关,但删掉不影响主逻辑”。这种松耦合,正是非线性辅助内容的核心特征。
一款AI工具,主要用于使用 Codex CLI 进行深度网络搜索,适用于需要多源综合分析的复杂查询。当 `web_search`(Brave)返回结果不足,或用户……时使用,适合需要提升相关任务效率的用户。
- 放在
article内 → 只绑定当前文章,比如某篇教程右侧的「历史背景」卡片,换篇文章就失效 - 与
main并列于body→ 全站级辅助,如右侧「热门文章」列表,所有页面共用 - 不能塞进
header或nav→ 违反 HTML5 嵌套规则,屏幕阅读器会跳过或误读 - 删除整个
aside后,main仍需能独立成文——这是判断是否该用它的唯一标尺
CSS 布局决定“侧边”视觉,而非标签名
写了 aside,内容还在正文下方?因为浏览器把它当普通块级元素处理。让它真正在右侧显示,必须靠父容器的布局控制。
- 推荐用
display: flex:父容器设display: flex; gap: 1.5rem,aside设flex: 0 0 280px,main设flex: 1 - 更现代选
display: grid:父容器grid-template-columns: 1fr 280px,再用grid-column: 2指定aside占第二列 - 绝对避免
float: right:IE11 已淘汰,且易引发父容器塌陷、文字绕行等老问题 - 小屏必须加
@media (max-width: 768px)把aside改为display: block,否则横向溢出
真正容易被忽略的,不是怎么写 aside,而是它和大纲工具完全解耦——你得同时管好语义(HTML)、视觉(CSS)、导航(锚点/TOC 插件),三者缺一不可。任何一个环节漏掉,非线性辅助内容就会变成“看不见的侧边栏”。










