2

比方说,我总是想将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>

<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不可能是正确的。根据工作草案:

header元素表示其最近的祖先分段内容或分段根元素的介绍性内容。

main元素不分割内容,对文档大纲没有影响。

因此,body > main > headerinA将表示介绍性内容body它是分段根元素

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

4

1 回答 1

0

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

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

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

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

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

于 2013-12-31T00:06:52.790 回答