HTML5 主要元素的用途

Enz*_*zio 6 html semantic-markup

我最近一直在研究 HTML 语义,我想知道它的真正目的<main>是什么。我创建了如下所示的两个场景:

场景一

     <main role="main">
        <header role="banner">
           <hgroup>
              <h1>Header 1</h1>
              <h2>Header 2</h2>
           </hgroup>

           <nav>
              <ul>
                 <li><a href="#">Link 1</a></li>
                 <li><a href="#">Link 2</a></li>
                 <li><a href="#">Link 3</a></li>
              </ul>
           </nav>
        </header>

        <section role="region">
           <header>
              <h1>Articles</h1>
           </header>

           <article>
              <header>
                 <h1>Article name</h1>
              </header>

              <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>

              <footer>
                 <a href="#" title="Read more">Read this post</a>
              </footer>
           </article>

           <footer>
              <a href="#" title="Read more">Read this articles</a>
           </footer>
        </section>

        <footer role="contentinfo">
           <p>Page last updated <time datetime="2009-11-04">November 4th, 2009</time></p>
           <address>
              <a title="Posts by Just A Name" href="#">Just A Name</a>
           </address>
        </footer>
     </main>
Run Code Online (Sandbox Code Playgroud)

场景二

     <header role="banner">
        <hgroup>
           <h1>Header 1</h1>
           <h2>Header 2</h2>
        </hgroup>

        <nav>
           <ul>
              <li><a href="#">Link 1</a></li>
              <li><a href="#">Link 2</a></li>
              <li><a href="#">Link 3</a></li>
           </ul>
        </nav>
     </header>

     <main role="main">
        <section role="region">
           <header>
              <h1>Articles</h1>
           </header>

           <article>
              <header>
                 <h1>Article name</h1>
              </header>

              <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>

              <footer>
                 <a href="#" title="Read more">Read this post</a>
              </footer>
           </article>

           <footer>
              <a href="#" title="Read more">Read this articles</a>
           </footer>
        </section>
     </main>

     <footer role="contentinfo">
        <p>Page last updated <time datetime="2009-11-04">November 4th, 2009</time></p>
        <address>
           <a title="Posts by Just A Name" href="#">Just A Name</a>
        </address>
     </footer>
Run Code Online (Sandbox Code Playgroud)

哪一个是最好的解决方案,为什么?

dip*_*pas 5

根据W3Cmain应该仅用于该文档特有的内容,因此在您的情况下,场景 #2 是最合适的。

该元素表示文档或应用程序的main主要内容部分。body内容main部分由与文档的中心主题或应用程序的中心功能直接相关或扩展的内容组成。

注意:该main元素不是分段内容,对文档大纲没有影响

文档的内容main部分包括该文档特有的内容,不包括在一组文档中重复的内容,例如站点导航链接、版权信息、站点徽标和横幅以及搜索表单(除非文档或应用程序功能main是的搜索表单)。

作者不得在一份 文档中包含多个main元素。

作者不得将该元素作为、 、或元素main的子元素包含在内。articleasidefooterheadernav