HTML 5 学习笔记之 常用标签简介

新的符合语义及其结构化的元素

标签标签描述
<article> 定义一个文章
<aside> 定义页面内容旁边内容,例如,广告
<bdi> 定义一个可能用不同方向格式来显示的文字区域
<command> 定义一个用户可能调用的命令按钮
<details> 定义用户可能阅读或者隐藏的更多细节内容
<figcaption> 定义figure属性的标题
<figure> 指定自包含的内容,例如,插图,图表,图片,代码等
<footer> 定义一个文档或者内容的页底内容
<header> 定义一个文档或者section区域的页头内容
<hgroup> 当标题拥有多层时用来将一套<h1>到<h6>的元素分组
<mark> 定义骠骑和高亮内容
<meter> 按照指定的区域来定义一个梯度管理器
<nav> 定义导航链接
<progress> 定义内容的进度
<rp> 定义不被ruby注释支持的内容的显示
<rt> 定义一个可解释或者可朗读的字符(为东亚文字排版设计)
<ruby> 定义一个ruby注解 (为东亚文字排版设计)
<section> 定义一个文档区域
<summary> 为<details>标签定义一个可被查看的标题
<time> 定义时间
<wbr> 定义可能得换行

十个常用的布局新标签简介:

  • <article> 标签定义外部的内容,可以是一篇新的文章。
  • <aside> 标签定义 article 以外的内容,aside 的内容可用作文章的侧栏。
  • <figcaption> 标签定义 figure 元素的标题。
  • <figure> 标签用于对元素进行组合,使用 figcaption 元素为元素组添加标题。
  • <footer> 标签定义 section 或 文档 的页脚。
  • <header> 标签定义 文档 的页眉。
  • <hgroup> 标签用于对 section 或 网页 的标题进行组合,使用 figcaption 元素为元素组添加标题。
  • <nav> 标签定义 导航链接 的部分。
  • <section> 标签定义文档中的节( section、区段 )。比如章节、页眉、页脚或文档中的其他部分。
  • <time> 标签定义日期或时间,或者两者。

下面的图片就是使用 HTML5 语义化标签的布局模式了。

以上网络上找的图示效果表示特别明了,但是建议写成是section包含article,这没有固定的要求,只是这样更通用些,更符合现在的一个写法趋势,如下:

事实上中间部分也可以写做如下结构,淘宝网常见这种写法:

<section>
 <nav></nav>
 <article>
   <hgroup>
    <h1>这是一篇介绍HTML 5结构标签的文章</h1>
    <h2>HTML 5的革新</h2>
    </hgroup>
    <p>文章内容详情</p>
  </article>
 <aside></aside>
</section>

不管哪种结构,只要更富语义化,那就是好的写法,规范不是死的也是人定的,不过要在 IE 下使用这些语义化的标签就需要这JS 来做兼容了,到 IE9之后的版本就不需要了。代码如下:

<!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->

以上这点需要特别注意下,现在我发现不少网站直接写的<!--[if IE]>,关于html5网页布局示例演示还需要注意下面的一些问题:

然后仍然需要对 IE 下的这部分标签重置CSS样式,CSS代码如下:

article,aside,canvas,details,embed,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{display:block;}
command,datalist,keygen,mark,meter,progress,rp,rt,ruby,time,wbr{display:inline;}

HTML 5 中 div 、section 和 article 的区别

使用section元素时需要注意以下两点:

不要将section元素与div元素混淆使用。当一个容器需要直接定义样式或通过脚本定义行为时,推荐使用div元素而非section元素。

通常不建议为那些没有标题(h1~h6元素)的内容使用section,可以使用HTML5轮廓工具(下载HTML5轮廓工具的网址为http://gsnedders.html5.org/outliner/)来检查页面中是否有不包含标题部分的section。如果使用该工具举行检查后,在某个section的说明中有“untitled section”(没有标题的section)文字,这个section就可能属于使用不当(nav元素或aside元素没有标题是合理的)

在一个section元素或article元素内,应该只有一个标题,如果有两个标题,则第二个标题会被隐式放入一个新的section元素之内,如下面的代码所示,h2元素之后的内容会被隐式放入一个新的section元素内:

<article>
<h1>标题</h1>
<!--隐式创建出一个新的section元素-->
<h2>副标题</h2>
正文
</artile>

div:
这个标签是我们见得最多、用得最多的一个标签。在html4的时代里,基本上每个网页上都铺天盖地的能找到他的身影。但是他本身没有任何语义,用作布局以及样式化或脚本的钩子(hook)。

section:

与 div 的无语义相对,简单地说 section 就是带有语义的 div 了,但是千万不要觉得真的这么简单。section 表示一段专题性的内容,一般会带有标题。看到这里,我们也许会想到,那么一篇博客文章,或者一条单独的评论岂不是正好可以用 section 吗?接着看:当元素内容聚合起来更加言之有物时,应该使用 article 来替换 section 。

那么,section 应该什么时候用呢?再接着看:section 应用的典型场景有文章的章节、标签对话框中的标签页、或者论文中有编号的部分。一个网站的主页可以分成简介、新闻和联系信息等几部分。其实我对这里传达信息很感兴趣,因为感觉 section 和下面要介绍的 artilce 更加适用于模块化应用,这个话题以后会出篇专门的文章来讨论,这里暂时略过。

要注意,W3C 还警告说:section 不仅仅是一个普通的容器标签。当一个标签只是为了样式化或者方便脚本使用时,应该使用 div 。一般来说,当元素内容明确地出现在文档大纲中时,section 就是适用的。

article:

article 是一个特殊的 section 标签,它比 section 具有更明确的语义, 它代表一个独立的、完整的相关内容块。一般来说, article 会有标题部分(通常包含在 header 内),有时也会包含 footer 。虽然 section 也是带有主题性的一块内容,但是无论从结构上还是内容上来说,article 本身就是独立的、完整的。

当 article 内嵌 article 时,原则上来说,内部的 article 的内容是和外层的 article 内容是相关的。例如,一篇博客文章中,包含用户提交的评论的 article 就应该嵌套在包含博客文章 article 之中。

总结:

div section article ,语义是从无到有,逐渐增强的。div 无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用 section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用 article。原则上来说,能使用 article 的时候,也是可以使用 section 的,但是实际上,假如使用 article 更合适,那么就不要使用 section 。nav 和 aside 的使用也是如此,这两个标签也是特殊的 section,在使用 nav 和 aside 更合适的情况下,也不要使用 section 了。

对于 div 和 section、 article 以及其他标签的区分比较简单。对于 section 和 article 的区分乍看比较难,其实重点就是看看这段内容脱离了整体是不是还能作为一个完整的、独立的内容而存在,这里面的重点又在完整身上。因为其实说起来 section 包含的内容也能算作独立的一块,但是它只能算是组成整体的一部分,article 才是一个完整的整体

原文地址:https://www.cnblogs.com/zjfazc/p/2838909.html