aside
代码可以在article
代码中排在第一位吗?
我一直在快速阅读aside
标签的规格,但真的找不到任何可以解释它的东西。
任何可以解释这是否是合法结构的HTML5专家?
<article>
<aside>
<h2>Aside Heading</h2>
<p>
Aside info
</p>
</aside>
<h2>Article Heading</h2>
<p>
Article info
</p>
</article>
或者aside
在article
这样的内容之后是否重要:
<article>
<h2>Article Heading</h2>
<p>
Article info
</p>
<aside>
<h2>Aside Heading</h2>
<p>
Aside info
</p>
</aside>
</article>
答案 0 :(得分:3)
您的第二个代码段是更好的选择 - aside
最好不要在文章标题之前。
原因是虽然aside
作为article
的第一个孩子并非无效,但请查看the results of trying it in the HTML checker (validator),您会看到它会导致此警告:
警告:文章缺少标题。考虑使用h2-h6元素为所有文章添加标识标题。
该警告不是HTML检查程序错误。 the HTML outline algorithm的其他实现(例如https://h5o.github.io/)也会将该文章视为缺少标题。
显然有一个标题 - <h2>Article Heading</h2>
- 但是由于HTML大纲算法的要求(看起来很奇怪......),如果aside
元素在{{1}的标题之前这导致大纲算法将article
视为缺少标题。
因此,以大纲算法更快乐的方式标记内容并避免HTML检查器发出警告的一种选择是:
article
也就是说,只需在<article>
<h2>Article Heading</h2>
<aside>
<h2>Aside Heading</h2>
<p>
Aside info
</p>
</aside>
<p>
Article info
</p>
</article>
之前移动<h2>Article Heading</h2>
,但保持其他所有内容相同。
另一种方法是在问题的示例中执行您已完成的操作:将aside
移至aside
的末尾。如果您查看the results of trying that second example from the question in the HTML checker,您会看到它不会导致任何警告而且没有错误。