HTML5最佳做法; section / header / aside /文章元素
网上有足够的关于HTML5的信息(以及在stackoverflow上),但现在我对“最佳实践”感到好奇。 像章节/标题/文章这样的标签是新的,每个人对使用这些标签的时间/地点都有不同的看法。 那么你们怎么看待下面的布局和代码呢?

1 <!doctype html>
2 <head>
3 <title>Website</title>
4 </head>
5
6 <body>
7 <section>
8 <header>
9 <div id="logo"></div>
10 <div id="language"></div>
11 </header>
12
13 <nav>
14 <ul>
15 <li>menu 1</li>
16 <li>menu 2</li>
17 <li>menu 3</li>
18 <li>menu 4</li>
19 <li>menu 5</li>
20 </ul>
21 </nav>
22
23 <div id="main">
24 <div id="main-left">
25 <article>
26 <header><h1>This is a title</h1></header>
27
28 <p>Lorem ipsum dolor sit amet, consectetur
29 adipiscing elit. Quisque semper, leo eget</p>
30
31 <p>Lorem ipsum dolor sit amet, consectetur
32 adipiscing elit. Quisque semper, leo eget</p>
33
34 <p>Lorem ipsum dolor sit amet, consectetur
35 adipiscing elit. Quisque semper, leo eget</p>
36
37 <p>Lorem ipsum dolor sit amet, consectetur
38 adipiscing elit. Quisque semper, leo eget</p>
39 </article>
40 </div>
41
42 <div id="main-right">
43 <section id="main-right-hot">
44 <h2>Hot items</h2>
45 <ul>
46 <li>Lorem ipsum</li>
47 <li>dolor sit</li>
48 <li>...</li>
49 </ul>
50 </section>
51
52 <section id="main-right-new">
53 <h2>New items</h2>
54 <ul>
55 <li>Lorem ipsum</li>
56 <li>dolor sit</li>
57 <li>...</li>
58 </ul>
59 </section>
60 </div>
61 </div>
62
63 <div id="news-items">
64 <header><h2>The latest news</h2></header>
65
66 <div id="item_1">
67 <article>
68 <header>
69 <img src="#" title="titel artikel" />
70 <h3>Lorem ipsum .....</h3>
71 </header>
72 <p>Lorem ipsum dolor sit amet,
73 adipiscing elit. Quisque semper, </p>
74 <a href="#">Read more</a>
75 </article>
76 </div>
77
78
79 <div id="item_2">
80 <article>
81 <header>
82 <img src="#" title="titel artikel" />
83 <h3>Lorem ipsum .....</h3>
84 </header>
85 <p>Lorem ipsum dolor sit amet,
86 adipiscing elit. Quisque semper, </p>
87 <a href="#">Read more</a>
88 </article>
89 </div>
90
91
92 <div id="item_3">
93 <article>
94 <header>
95 <img src="#" title="titel artikel" />
96 <h3>Lorem ipsum .....</h3>
97 </header>
98 <p>Lorem ipsum dolor sit amet,
99 adipiscing elit. Quisque semper, </p>
100 <a href="#">Read more</a>
101 </article>
102 </div>
103 </div>
104
105 <footer>
106 <ul>
107 <li>menu 1</li>
108 <li>menu 2</li>
109 <li>menu 3</li>
110 <li>menu 4</li>
111 <li>menu 5</li>
112 </ul>
113 </footer>
114 </section>
115 </body>
116 </html>
线路7 section整个网站的身边? 或者只有一个div ?
第8行。每个section以header开始?
第23行。这个div正确的吗? 或者这必须是一个section ?
第24行。用div分割左/右列。
第25行。 article标签的正确位置?
第26行。是否需要将你的h1 -tag放在header -tag中?
第43行。内容与主文章无关,所以我决定这是一个section而不是aside 。
第44行。H2没有header
第53行。没有header section
第63行。Div与所有(非相关)新闻项目
第64行。 header为h2
65行。嗯, div或section ? 或者删除这个div ,只使用article -tag
第105行。页脚:-)
事实上,当你遇到页眉/页脚时,你是完全正确的。 以下是关于如何使用每个主要HTML5标记的一些基本信息(我建议阅读底部链接的完整源代码):
部分 - 用于将主题相关的内容分组在一起。 听起来像是一个div元素,但事实并非如此。 div没有语义意义。 在用段落元素替换所有div之前,请始终问自己:“所有内容都相关吗?”
抛开 - 用于切线相关的内容。 仅仅因为某些内容出现在主要内容的左侧或右侧,没有足够的理由使用搁置元素。 问问自己,是否可以删除旁边的内容,而不会降低主要内容的含义。 Pullquotes是切线相关内容的一个例子。
标题 - 标题元素和标题(或标头)的普遍接受用法之间存在着至关重要的区别。 在页面中通常只有一个标题或'标头'。 在HTML5中,您可以拥有任意数量的HTML5。 该规范将其定义为“一组介绍或导航辅助工具”。 您可以在网站的任何部分使用标题。 事实上,你可能应该在你的大部分章节中使用标题。 规范将节元素描述为“内容的主题分组,通常带有标题。”
nav - 用于主要导航信息。 分组在一起的一组链接不足以使用导航元素。 另一方面,站点范围的导航属于导航元素。
页脚 - 听起来像是对位置的描述,但不是。 页脚元素包含有关其包含元素的信息:谁写的,版权,相关内容的链接等。而我们通常对整个文档有一个页脚,HTML5允许我们在页面中也有页脚。
资料来源 :http://www.anthonycalzadilla.com/2010/08/html5-section-aside-header-nav-footer-elements-not-as-obvious-as-they-sound/
此外,以下是对上述article中未找到的article的描述:
文章 - 用于指定独立,自包含内容的元素。 一篇文章应该是有意义的。 在用文章元素替换所有div之前,总是问自己:“是否可以独立于网站的其他部分阅读它?”
不幸的是,到目前为止(包括投票数最多)给出的答案不是“正义”常识,就是错误或令人困惑。 没有关键的关键字1弹出!
我写了3个答案:
为了理解这里讨论的html元素的作用,你必须知道其中的一些部分是文档。 为了创建大纲内容目录(TOC),可以根据HTML5大纲算法对每个和每个html文档进行分段。 纲要通常不是可见的(现在),但作者应该使用html,以便生成的纲要反映他们的意图。
您可以创建具有这些元素的部分,而不是其他部分:
<section>部分 <article>部分 <nav>部分 <aside>部分 <h*> 2(并非所有这些都参见下文) 部分可以命名为:
<h*>创建节名称自己 <h*>那么<section|article|nav|aside>部分将被命名 <h*>是唯一不会自己创建节的元素 部分还有一件事:以下上下文(即元素)创建“大纲边界”。 无论他们包含哪些部分对他们来说都是私有的
<body> <td>表格单元格 <blockquote> <details> , <dialog> , <fieldset>和<figure> example HTML
<body> <h3>if you want siblings at top level...</h3> <h3>...you have to use untyped sections with <h*>...</h3> <article> <h1>...as any other section will descent</h1> </article> <nav> <ul> <li><a href=...>...</a></li> </ul> </nav> </body> has this outline
1. if you want siblings at top level... 2. ...you have to use untyped sections with <h*>... 2.1. ...as any other section will descent 2.2. (unnamed navigation)
这提出了两个问题:
<article>和<section>什么区别?
<section>就像书本章节 <article> ,至少在最底层 <article>及其评论<article>也可以用<article>包装 <section> <article>中的<section>就像书中的章节 <article> <section>中的<article> s就像一卷中的诗歌(在一个系列中) <header> , <footer>和<main>适应?
<header>和<footer> <header> <footer> <header>之上 <main> <body>即) <main>甚至可以在文档的某些小节中“隐藏”,而文档的<header>和<footer>则不能(该标记会标记该小节的页眉/页脚) <article>章节中不允许这样做 1来介意:轮廓,算法,隐式切片
2我使用<h*>作为<h1> , <h2> , <h3> , <h4> , <h5>和<h6>缩写。
3在<aside>或<nav> <main>不允许<main> ,但这并不奇怪。 - 实际上: <main>只能隐藏(嵌套)降级<section>部分或出现在顶层,即<body>
该文档的标记可能如下所示:
<body>
<header>...</header>
<nav>...</nav>
<article>
<section>
...
</section>
</article>
<aside>...</aside>
<footer>...</footer>
</body>
您可以在A List Apart的这篇文章中找到更多信息。
链接地址: http://www.djcxy.com/p/31805.html上一篇: HTML5 best practices; section/header/aside/article elements
