大家好,
我刚开始学习HTML5 - 没有问题,一切都进行得很顺利。
我只有一个小问题,关于 <article>
、<section>
和 <div>
标签的语义使用。
我知道 <div>
元素没有语义意义 - 在 HTML5 中,它主要用于脚本/样式目的。这对我来说很清楚。我在 SO 问题中找到了很多有用的信息:HTML5有新的文章(<article>
)、节(<section>
)和旁边(<aside>
)标签。何时应该使用<div>
标签?
然而,我对 <article>
和 <section>
的使用仍然有些困惑。 W3C HTML5 规范指出,<article>
标签:
指定独立的、自包含的内容,可能是新闻文章、博客文章、论坛帖子或其他可以独立于站点的其余部分分发的文章。
应该使用 <section>
标签的地方:
用于文档中的节。例如章节、页眉、页脚或文档的任何其他部分。
理论上,一切都很清楚。然而,在准备我的第一个 HTML5 网站代码时,我发现有点难以区分。
让我解释一下我的网站结构:
- 背景添加到 body 元素。非常完美。
- 我在我的每个 HTML/CSS 项目中都使用960.gs 网格系统。这次我也在使用它。正如您肯定知道的那样,它需要添加一个容器 (在我的情况下,是 class="container_12" 的容器)。
为了总结我的结构:
- 作为主要容器,我使用了
<div class="container_12">
- 我的文档中的第一个元素是一个
<header>
。它包含几个元素:幻灯片和顶部栏。顶部栏是一个<section>
,它有两个子元素:左侧的电话号码和右侧的语言列表。对于这些元素,我也使用了<section>
。对于幻灯片(或内部页面上的短标语占位符),我使用了包含两个<section>
标签的<section>
标记:左列和右列。 - 作为主页的主要内容包装器,我决定使用
<section>
元素。对于像关于我们等页面,我使用<article>
。对于博客列表,我使用一个<section>
,其中包含几个<article>
标签。对于单个帖子,我使用<article>
标记。 - 显然,对于页脚,我使用
<div class="container_12"> <div class="grid_12 header"> <div class="bar grid_12 alpha omega"> <div class="grid_6 alpha"> Phone number </div> <div class="grid_6 omega"> German - English - French </div> </div> <div class="grid_6 alpha"> LOGOTYPE </div> <div class="grid_6 omega"> <ul> navigation </ul> </div> <div class="grid_12 alpha omega"> <div class="grid_6 alpha"> Slider I col </div> <div class="grid_6 omega"> Slider II col </div> </div> </div> <div class="grid_12 content"> </div> <div class="grid_12 footer"> <div class="grid_4 alpha"> Footer I col </div> <div class="grid_4"> Footer II col </div> <div class="grid_4 omega"> Footer III col </div> </div> </div>
这是我将代码转换为HTML5后的结果:
<div class="container_12"> <header class="grid_12"> <section class="bar grid_12 alpha omega"> <section class="grid_6 alpha"> Phone number </section> <section class="grid_6 omega"> German - English - French </section> </section> <section class="grid_6 alpha"> LOGOTYPE </section> <nav class="grid_6 omega"> <ul> navigation </ul> </nav> <section class="grid_12 alpha omega"> <section class="grid_6 alpha"> Slider I col </section> <section class="grid_6 omega"> Slider II col </section> </section> </header> <section class="grid_12 content"> </section> <footer class="grid_12"> <section class="grid_4 alpha"> Footer I col </section> <section class="grid_4"> Footer II col </section> <section class="grid_4 omega"> Footer III col </section> </footer> </div>
我的方法正确吗?你能加入或者纠正一些什么吗?
为了避免任何问题:我知道
<section>
不能替代<div>
。