gpt4 book ai didi

html - HTML5 中的主要内容

转载 作者:行者123 更新时间:2023-11-28 03:30:06 24 4
gpt4 key购买 nike

比方说,我总是想在一个项目中为不同的页面类型使用main 元素。其中一种页面类型只是产品页面,带有标题和一些部分。哪个变体在语义上是正确的:

一个

<body>
<header>
...
</header>
<main>
<header>
<h1>...</h1>
<img />
</header>
<section>
<h1>...</h1>
<p>...</p>
</section>
<section>
<h1>...</h1>
<p>...</p>
</section>
</main>
<footer>
...
</footer>
</body>

B

<body>
<header>
...
</header>
<main>
<article>
<header>
<h1>...</h1>
<img />
</header>
<section>
<h1>...</h1>
<p>...</p>
</section>
<section>
<h1>...</h1>
<p>...</p>
</section>
</article>
</main>
<footer>
...
</footer>
</body>

我会说 A 不可能是正确的。根据工作草案:

The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element.

The main element is not sectioning content and has no effect on the document outline.

因此 A 中的 body > main > header 将代表 body介绍性内容,这是分割根元素

对于那些可能会问的人,为什么不使用没有 mainB。这有技术原因,我总是使用 main 或不使用。还有其他页面类型在主要内容中包含多篇文章。

最佳答案

示例A 不正确。我想不出示例 A 有意义的内容。

你给出了正确的解释为什么会这样:

header属于其“最近的祖先分段内容或分段根元素”。

在示例 A 中,两个 header 元素都属于 body(= 最近的分段根元素),但只有第一个 header 应该属于它,而第二个 header 应该属于产品。

由于 main 不是分段内容元素,因此您需要在此处使用一个。 article 似乎是正确的选择(因为它的所有内容都是关于产品的),所以示例 B 看起来不错。

关于html - HTML5 中的主要内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com