2016-05-02 24 views
0

我想知道这是否适用。HTML5哲学:忽略某些语义元素?

实例:

  1. main标签

    HTML5规范表示:

    主要元件代表一个 文档或应用程序的主体的主要内容部分。主要内容部分由内容 组成,该内容直接与 文档或应用程序的中央功能的中心主题相关或扩展。

    这样做,因此,意味着:

    如果您的网页内的生活的唯一内容就是main内容,只有主要内容,你应该排除标签,因为没有什么把它与但它本身?

  2. section标签

    HTML5规范表示:

    的部分元素表示一个文档或应用 的通用部分。在这种情况下,部分是 内容的专题分组。

    如果您的网页内的生活的唯一内容是section内,那么这是否意味着你的网页不应该被切片,而是成为一个单一的元素,因此你不应该使用一个section标签?

我的想法:

我认为main标签应该被忽略在所提供的情况,但是,部分标签应该需要的,因为一个页面可以分段断成一个单一的部分。单词部分可以用来描述一个整体的单个部分,而不管该部分是否是唯一的一部分。

我在想的布局:

doctype html 
html 
    head 
    ... 
    body 
    header 
    main 
     section 
    nav 
    footer 

变为:

doctype html 
html 
    head 
    ... 
    body 
    header 
    section 
    nav 
    footer 
+0

我会以不同的方式阅读 - 文档的中心主题是*特定页面/ URI的用途*。所以,如果它是一个About页面,并且你拥有的只是一个关于你的网站的内容,那么用'main'包装它可以让每个人都知道内容直接关于About。此外,如果您开始删除标签,那么如果区分包含1个部分的页面和包含1个主部分的页面(如果您删除了两个标签),该如何区分。实际上,使用标签更容易造型。更好的做法是将标签和样式设置为'主要',而不是对主体和身体的第一个孩子进行样式设置以及其他n个例外。 – potatopeelings

回答

1

我认为主要的标签应在提供的情况下可以省略,但是, 部分标签应因为一个页面可以将 划分为单个部分。

有在较早的候选推荐一个类似的建议(见https://www.w3.org/TR/2012/CR-html5-20121217/common-idioms.html#the-main-part-of-the-content)其中建议隐含的主要内容的标记或具有body马克出主内容与元素(如headernavfooter)排除其他的(非main内容)位(如你所建议的)。

,这部分后来被丢弃(见https://lists.w3.org/Archives/Public/public-html/2013Feb/0037.html或只是搜索回复:4/5周:在公共HTML列表上演WHATWG补丁HTML5.1/HTML5.0 CRhttps://www.w3.org/Search/Mail/Public/advanced_search)。引述

我不认为这部分应包括在内,因为它指出 没有用于标记的 内容page.This的主要部分专用的元素矛盾的主要的定义HTML 5.1


此外,如果你看一下https://www.w3.org/html/wg/wiki/User:Sfaulkne/main-usecases#Introduction,有些情况下不使用main标签将需要(为ARIA像role="main"或某些结构样式基于CSS)的交替使用的情况下,因此国际海事组织将会 即使您刚刚使用用例,也应该使用main标记。

注意 - 它仍然建议您使用role="main"即使你main标签(直到所有的浏览器会自动映射main元素role="main"


main标签,你可以有一个section标签,如果你想表明它是其他东西的一部分(请参阅https://www.w3.org/TR/html5/sections.html#article-or-section?)

而在相关说明中,虽然您可以使用article标记标记内容,页面(不包括所有额外位)是自包含的,规范说明它在技术上是冗余的(请参阅https://www.w3.org/TR/html5/sections.html#the-article-element)。引述

...内容应标明了主要元素和内容 也被打上了一篇文章,但它在技术上是多余的 这种情况下(因为它是不言自明的是,页面是一个单一的 组成,因为它是一个单一的文件)。


总结

  1. 您需要main标签。
  2. 你不需要section标签unles你想表明,它形成了别的东西的一部分。