正确使用HTML5元素&;结构

正确使用HTML5元素&;结构,html,semantic-markup,Html,Semantic Markup,我需要将PSD转换为HTML5/CSS。我很难找到关于使用哪些元素的明确答案。我的布局由页眉、内容/侧边栏和页脚组成。模板结构如下所示 我知道你可以在HTML5中使用多个页眉/页脚元素,我有主页眉/页脚标记。我遇到的主要问题是内容的结构 我有一个主内容区,然后是一个侧边栏,侧边栏内容与内容没有真正的联系。在侧边栏中,我需要有多个内容框 内容区域有不同的部分,主要是带有文本的特色图像,然后剩下的就是页面文本 据我所知,使用标记来定义内容/侧边栏不是语义性的,因为它与内容无关,而是页面结构/布局。我

我需要将PSD转换为HTML5/CSS。我很难找到关于使用哪些元素的明确答案。我的布局由页眉、内容/侧边栏和页脚组成。模板结构如下所示

我知道你可以在HTML5中使用多个页眉/页脚元素,我有主页眉/页脚标记。我遇到的主要问题是内容的结构

我有一个主内容区,然后是一个侧边栏,侧边栏内容与内容没有真正的联系。在侧边栏中,我需要有多个内容框

内容区域有不同的部分,主要是带有文本的特色图像,然后剩下的就是页面文本

据我所知,使用
标记来定义内容/侧边栏不是语义性的,因为它与内容无关,而是页面结构/布局。我下面的标记对于我试图实现的结构是否正确

    <header>

    </header>

    <div class="wrapper">
        <div class="main">
            <section id="featured-content">
                <img />
                <p>Featured text</p>
            </section>

            <section id="main">
                <header><h2>Title</h2></header>
                <p>The rest of content goes here</p>
            </section>
        </div>

        <aside class="sidebar">
            <section class="content-box">
                <header>Box title</header>
                <p>Box content</p>
            </section>

            <section class="content-box">
                <header>Box title</header>
                <p>Box content</p>
            </section>
        </aside>
    </div>

    <footer>

    </footer>`


一般情况下:如果
标题仅包含标题,则可以省略它

如果页面的主要内容可以独立存在(如博客文章或类似内容),则可以使用
文章
,而不是
部分

由于
#特色内容
是对主要内容的某种抽象/总结,因此它应该是
文章
的一部分。将其包含在
标题中是有意义的:

<article>

  <header>
    <h2>(article title)</h2>

    <img src="" alt="(article teaser image)">
    <p>(article teaser text)</p>
  </header>

  <p>(article content)</p>

</article>
因此,结构可能看起来像:

<body>
  <h1>…</h1> <!-- maybe with header -->

  <article>
    <h2>…</h2>
  </article>

  <aside> 
    <h2>…</h2> <!-- omit it or hide it visually -->

    <section> <!-- or article -->
      <h3>…</h3>
    </section>

    <section> <!-- or article -->
      <h3>…</h3>
    </section> 

  </aside> <!-- resp. use 1 aside for each block -->

  <footer></footer>

</body>

… 
…
… 
…
…

1)特色内容
和主内容
有什么关系吗?特色内容的作用是什么?在这方面,一个真实的例子可能会有所帮助。2) 您能包括您使用的所有标题(
h1
-
h6
)吗?(或者是
h2
是唯一的一个?)是的-它们是相关的。在
#main
中是页面内容,#特色内容几乎是页面内容的摘要。进一步研究HTML5元素,我认为我应该用
替换
#main
,然后在该元素中,对实际页面内容使用
,在该元素中,对特色元素使用
,然后对侧边栏使用
,显然应该用于内容框?或者-在我的侧边栏中,我应该使用或类似的吗?类似这样的东西?干杯,谢天谢地,这和我最后的结果非常相似。我在
中使用
,因为每一行的内容只有几行,经过一点研究,我认为这篇文章不合适。在你对
中标题标签的评论中,当通过HTML5大纲视图运行我的代码时,我得到了未定义的部分,这是为了这个目的吗(我假设我不知道还有其他目的,SEO?)。我可以把
边栏
或类似的东西隐藏在CSS中吗?@RyanPilbeam:每个分区元素(
部分
文章
放在一边
导航
)在文档大纲中生成一个条目。如果在剖切元素内部提供标题,则只需使用第一个标题。如果您不提供任何标题,它将创建一个“未定义”条目。现在,不明确地指定任何标题是有效的(通常不可取,但在某些情况下是适当的)。您还可以指定一个并将其可视化隐藏,这样屏幕阅读器用户仍然可以读取它。谢谢,这很有意义。在大纲视图上,第一部分为空,站点名称是否应为主
元素中的
?@RyanPilbeam:是,站点名称应为
h1
(无论是否在
标题中)。因此,以下所有标题和分段元素都在本网站标题的范围内。
<body>
  <h1>…</h1> <!-- maybe with header -->

  <article>
    <h2>…</h2>
  </article>

  <aside> 
    <h2>…</h2> <!-- omit it or hide it visually -->

    <section> <!-- or article -->
      <h3>…</h3>
    </section>

    <section> <!-- or article -->
      <h3>…</h3>
    </section> 

  </aside> <!-- resp. use 1 aside for each block -->

  <footer></footer>

</body>