且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《HTML5开发手册》——1.7 中级“菜谱”:使用section元素对内容分组

更新时间:2022-09-27 23:01:27

本节书摘来自异步社区《HTML5开发手册》一书中的第1章,第1.7节,作者: 【美】Chuck Hudson , 【英】Tom Leadbetter 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 中级“菜谱”:使用section元素对内容分组

section元素是一个总是需要标题的内容区域或页面区域。可以用它将多个部分的内容组合在一起,也可以根据需要,将内容的某一部分进一步划分。它不可用作通用封装器(generic wrapper)来实现样式上的需求。section元素中可以包含article元素,并且article元素也可以将其内容分割为section。正如上一节所说,你需要考虑何时使用article,以及何时使用section。代码1.9是一个使用section的示例,效果如图1.8所示。

代码1.9 利用section为不同类型的新闻创建一个基本的新闻页面


《HTML5开发手册》——1.7 中级“菜谱”:使用section元素对内容分组https://yqfile.alicdn.com/d317ff84d070b65fc9752942cb42e103e7d25383.png" >

在图1.8中,每个section自身都有标题,它们相互之间是隔开的。如果该页面还有其他内容,可将这些内容封装到一个section中,然后为它加上“Types of new we do”的标题:


《HTML5开发手册》——1.7 中级“菜谱”:使用section元素对内容分组

此外,还可以将“Nerdy News”区域(section)进一步划分为多个区域:


《HTML5开发手册》——1.7 中级“菜谱”:使用section元素对内容分组

article和section的选择
目前来看,section元素的使用方式和div标记的使用方式很相似。不过,与div不一样的是,section具有语义含义,它是一组相关内容的组合。

section中可以包含article。假设有一个新闻页面,它可能有一个新闻版块,而在该版块中又有不同类别的新闻。

就像报纸一样,这个新闻页面可能有一个“News”标题,其中包含各种类型的新闻。在HTML 4中,它们可以封装在一个div标记中,现在则可以将它们封装在一个section中了。然后再给每种类型的新闻加上标题,并放置在各自的section中。

如果你认为这部分内容具有独立的意义,那么就应当使用article标记。

提示:
后面将会讲到,在我们介绍HTML5大纲的时候,需要检查是否使用了正确的标记,这很重要。
在早期的HTML5中,一个常见的错误是使用一个section来封装整个站点,如或。千万不要这样使用section!
HTML5规范中讲到:
“强烈建议开发人员将div元素视为最后求助的元素,也就是说在没有其他合适的元素时才求助于它。用div元素代替其他更合适的元素会导致页面的可访问性变差,而且维护难度也会加大。”
div元素并不承载任何特殊的语义。所以可以用它对那些不属于HTML5新元素的内容进行分组。 通常当无法使用其他方法添加CSS样式时,才使用div。如果使用了section,它会添加到文档大纲中,表明它是重要的。相反,div则不能添加到大纲中。因此,如果section标记仅仅是用来添加样式,则***使用div。