html中article与section嵌套必须遵循单向语义流:页面级→区块级→文章级,不可同级或逆向嵌套;article内section须有独立标题及元信息,否则属语义滥用。

<header></header> 可以嵌套,但不是“想套几层就套几层”——它必须服从语义层级链,否则浏览器和读屏器会误判结构。
嵌套的合法边界:从页面级到 article 级的逐层收窄
嵌套不是语法允许就等于语义正确。<header></header> 的嵌套只在「范围逐级缩小」时成立:顶层 下的页面级 <header></header> → 其内 <section></section> 中的区块级 <header></header> → 再其内 <article></article> 中的文章级 <header></header>。这是一条单向、不可逆的语义流。
- ✅ 合法:
<header>...</header><section><header>...</header><article><header>...</header></article></section> - ❌ 非法:
<header><header>...</header></header>(同级嵌套无上下文支撑) - ❌ 非法:
<article><header><footer>...</footer></header></article>(<footer></footer>不能作为<header></header>的子元素) - ⚠️ 容易错:在
<aside></aside>或<div> 里随便套 <code><header></header>—— 若该区域无独立主题或引导性内容,就是语义滥用Article 内部用
<header></header>的硬性条件<article></article>里的<header></header>不是可选装饰,它承载的是这篇内容自身的元信息。没这些,就不该用<header></header>。- 必须有明确归属:仅服务于当前
<article></article>,不牵涉页面其他部分 - 内容应含至少一项语义锚点:
<h2></h2>(推荐,避免与页面<h1></h1>冲突)、<time datetime=""></time>、作者<p class="byline"></p>或<nav></nav>(如文章内目录) - 禁止塞正文:
<p>第一段文字</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML"><img src="https://img.php.cn/upload/skill/000/000/081/178998486916110.jpg" alt="Doc To HTML" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML" class="overflowclass">Doc To HTML</a> <p class="overflowclass">使用 MinerU 文档处理引擎将 Word 文档(.doc、.docx)转换为保留结构和格式的干净 HTML。</p> </div> <a rel="nofollow" href="/xiazai/skill4293" title="Doc To HTML" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>、<img>、<ul></ul>这类主体内容必须放在<header></header>外部 - 标题层级要对齐大纲:多个并列
<article></article>,各自<header></header>里的标题统一用<h2></h2>,而非一个用<h1></h1>一个用<h3></h3>
嵌套时容易被忽略的兼容性与解析风险
视觉上看起来没问题,不代表结构被正确理解。尤其在旧版辅助技术或 SEO 抓取中,嵌套错误会导致信息丢失。
- IE9+ 支持
<header></header>,但多层嵌套时若缺少明确节元素(<section></section>/<article></article>)包裹,可能降级为普通<div> <li>读屏器依赖 DOM 层级推断上下文:如果 <code><article><header><h2>标题</h2></header></article>缺少<time></time>或作者,它仍算合法;但如果写成<article><header><p>简介文字</p></header></article>(无 heading),部分读屏器会跳过整个<header></header>区域 - CSS 选择器要注意作用域:
header h2会匹配所有层级,而article > header > h2才精准命中文章级标题 - 不要用
<header></header>替代布局需求:加背景色、固定定位、flex 对齐——这些用<div class="article-header"> 更安全,语义不污染 <p>真正难的不是写几层 <code><header></header>,而是每嵌一层都得回答清楚:这一层的「主题范围」是什么?它的「引导性内容」是否真实存在且不可移出?一旦模糊,嵌套就从结构增强变成语义噪音。
- 必须有明确归属:仅服务于当前










