`

HTML5 语义标签使用详解

阅读更多
在 HTML5 出来之前,我们用 div 来表示页面章节,但是这些 div 都没有实际意义。(即使我们用 css 样式的 id 和 class 来形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为 html5 的出现而消失了,这就是我们平时所说的“语义”。





如上图那个页面结构没有使用一个 div,都是采用 html5 语义标签(用哪些标签,关键取决于你的设计目标)。但是也不要因为 html5 新标签的出现,而随意用之,错误的使用肯定会事与愿违。所以有些地方还是要用 div 的,就是因为 div 没有任何意义的元素,他只是一个标签,仅仅是用来构建外观和结构。因此是最适合做容器的标签。
W3C 定义了这些语义标签,不可能完全符合我们有时的设计目标,就像制定出来的法律不可能流传 100 年都不改变,更何况它才制定没多久,不可能这些语义标签对所以设计目标的适应。只是一定程度上的“通用”,我们的目标是让爬虫读懂重要的东西就够了。

结论:不能因为有了 HTML5 标签就弃用了 div,每个事物都有它独有的作用。

header 元素header 元素代表“网页”或“section”的页眉;通常包含 h1-h6 元素或 hgroup,作为整个页面或者一个内容块的标题,也可以包裹一个目录部分,一个搜索框,一个 nav,或者任何相关 logo;整个页面没有限制 header 元素的个数,可以拥有多个,可以为每个内容块增加一个 header 元素;


header 示例代码:
<header>

<hgroup>
<h1>网站标题</h1>
<h2>网站副标题</h2>
</hgroup>

</header></font></font>

header 使用注意:

可以是“网页”或任意“section”的头部部分;
没有个数限制;
如果 hgroup 或 h1-h6 自己就能工作的很好,那就不要用 header;

section 元素section 元素代表文档中的“节”或“段”,“段”可以是指一篇文章里按照主题的分段;“节”可以是指一个页面里的分组;section 通常还带标题,虽然 html5 中 section 会自动给标题 h1-h6 降级,但是最好手动给他们降级;

section 示例代码:

<section>

<h1>什么是 section</h1>

<article>

<h2>关于 section</h2>
<p>section 的介绍</p>

<section>
<h3>关于其他</h3>
<p>关于其他 section 的介绍</p>
</section>

</article>

</section>

section 使用注意:

表示文档中的节或者段;
article、nav、aside 可以理解为特殊的 section,所以如果可以用 article、nav、aside 就不要用 section,没实际意义的就用 div;

article 元素
article 元素最容易跟 section 和 div 容易混淆,其实 article 代表一个文档、页面或者网站中自成一体的内容,其目的是为了让开发者独立开发或重用。譬如论坛的帖子,博客上的文章,一篇用户的评论,一个互动的 widget 小工具。(特殊的 section)除了它的内容,article 会有一个标题(通常会在 header 里),会有一个 footer 页脚。我们举几个例子介绍一下 article,好更好区分 article、section、div;

一篇简单文章的 article 示例代码:

<article>

<header>
<h1>文章标题</h1>
</header>

<p>文章内容..</p>

<footer>
<p>版权:cssue.com</p>
</footer>

</article>

上例是最简单的 article 标签使用情况,如果在 article 内部再嵌套 article,那就代表内嵌的 article 是与它外部的内容有关联的,如博客文章下面的评论;

文章里的评论,一个 article 里嵌套 article 的示例代码:

<article>

<header>
<h1>文章标题</h1>
<time datetime="2012-12-06">2012/12/06</time>
</header>

<p>文章内容..</p>

<article>

<h2>评论</h2>

<article>
<header>
<h3>评论者: XXX</h3>
<time datetime="2012-12-06T19:10">~1 hour ago</time>
</header>
<p>娃哈哈..</p>
</article>

<article>
<header>
<h3>评论者: XXX</h3>
<time datetime="2012-12-06T19:10">~1 hour ago</time>
</header>
<p>哈哈哈哈...</p>
</article>

</article>

</article>

article 内部嵌套 article,有可能是评论或其他跟文章有关联的内容。那 article 内部嵌套 section 一般是什么情况呢。如下:

文章里的章节,一个 article 里嵌套 section 的示例代码:

<article>

<h1>前端技术</h1>
<p>前端技术有那些</p>

<section>
<h2>HTML</h2>
<p>标签..</p>
</section>

<section>
<h2>CSS</h2>
<p>样式..</p>
</section>

<section>
<h2>JS</h2>
<p>脚本..</p>
</section>

</article>

因为文章内 section 部分虽然也是独立的部分,但是它门只能算是组成整体的一部分,从属关系,article 是大主体,section 是构成这个大主体的一部分。本网站的全部文章都是 article 嵌套一个个 section 章节,这样能让浏览器更容易区分各个章节所包括的内容。

那 section 内部嵌套 article 又有哪些情况呢,如下:
一个 section 里嵌套 article 的示例代码:

<section>

<h1>介绍网站制作成员配备</h1>

<article>
<h2>设计师</h2>
<p>设计网页的...</p>
</article>

<article>
<h2>程序员</h2>
<p>编写程序的..</p>
</article>

<article>
<h2>前端工程师</h2>
<p>给楼上两位打杂的..</p>
</article>

</section>

设计师、程序员、前端工程师都是一个独立的整体,他们组成了网站制作基本配备,当然还有其他成员~~。设计师、程序员、前端工程师就像 article,是一个个独立的整体,而 section 将这些自成一体的 article 包裹,就组成了一个团体,更多内容见网页设计培训
article 和 section 的例子就例举这么多了,具体情况具体分析,不易深究。漏了 div,其实 div 就是只是想用来把元素组合或者给它们加样式时使用。

article 使用注意:

自身独立的情况下:使用 article;
是相关内容:使用 section;
没有语义的:使用 div;

nav 元素nav 元素代表页面的导航链接区域。用于定义页面的主要导航部分。
nav 示例代码:



<nav>
<ul>
<li>HTML5</li>
<li>CSS3</li>
<li>JavaScript</li>
</ul>
</nav>

但是我在有些时候却情不自禁的想用它,譬如:侧边栏上的目录,面包屑导航,或者上一篇下一篇文章,但是事实上规范上说 nav 只能用在页面主要导航部分上。页脚区域中的链接列表,虽然指向不同网站的不同区域,譬如服务条款,版权页等,这些 footer 元素就能够用了。

nav 使用注意:

用在整个页面的主要导航部分上,不合适就不要用 nav 元素;

aside 元素aside 元素标签用来表示当前页面或文章的附属信息部分,可以包含与当前页面或主要内容相关的引用、侧边栏、广告、nav 元素组,以及其他类似的有别与主要内容的部分。

<article>

<h1>前端技术</h1>
<p>前端技术包括:HTML、CSS、JavaScript等...</p>

<aside>
<dl>
<dt>HTML</dt>
<dd>HTML 是用于描述网页文档的一种超文本标记语言。</dd>
</dl>
</aside>

</article>

aside 使用注意:

被包含在 article 元素中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的引用、词汇列表等。
在 article 之外使用,作为页面或站点全局的附属信息部分;最典型的形式是侧边栏(sidebar),其中的内容可以是友情链接、附属导航或广告单元等。

footer 元素footer 元素代表“网页”或“section”的页脚,通常含有该节的一些基本信息,譬如:作者,相关文档链接,版权资料。如果 footer 元素包含了整个节,那么它们就代表附录,索引,提拔,许可协议,标签,类别等一些其他类似信息。
footer 示例代码:

<footer>
<p>版权:cssue.com</p>
</footer>

footer 使用注意:

可以是“网页”或任意“section”的底部部分;
没有个数限制,除了包裹的内容不一样,其他跟 header 类似。
  • 大小: 66.3 KB
分享到:
评论
1 楼 ldh8800 2015-05-18  
 

相关推荐

    详解HTML5常用的语义化标签

    快速查询 article | aside | nav | section | header | footer 架构预览 nav 定义导航链接的部分 ... &lt;li&gt;&lt;a&gt;Html5&lt;/a&gt; article 定义文章 装载显示一个独立的文章内容,论坛帖子、新闻、博客文章、用户评论等,

    《html5网页开发实例详解》随书源码2

    由于上传大小权限原因,分两部分上传。详细介绍了html5语义化标签,图像操作,地理定位,本地离线存储,通信api,websocket……共14章,每章都用代码案例详细介绍了关于html5的所有高级新特性。

    HTML5中新标签和常用标签详解

    今天先介绍下 html5 新增的结构元素,有的经常使用到,有的用不上,虽然说它们的出现是更促进页面更有语义,更好的 seo,但其实当页面禁用样式后,它们的展现跟 div 是没撒差别,有同学可能会说,既然一样,又不影响...

    《HTML 5网页开发实例详解》源码2

    由于上传大小权限原因,分两部分上传。详细介绍了html5语义化标签,图像操作,地理定位,本地离线存储,通信api,websocket……共14章,每章都用代码案例详细介绍了关于html5的所有高级新特性。

    详解HTML5中div和section以及article的区别

    刚刚开始接触 HTML5 时,对它的标签很不适应,甚至一度有点反感。尤其是对 div、section、article 这几个标签,实在弄不清楚应该使用在什么场合下。div HTML Spec:  The div element has no special meaning at all...

    从入门到精通HTML5——PDF——网盘链接

     9.1 使用表单标签——form 182  9.1.1 处理动作——action 182  9.1.2 表单名称——name 183  9.1.3 传送方法——method 183  9.1.4 编码方式——enctype 184  9.1.5 目标显示方式——target 185  9.2...

    HTML5+CSS3应用详解

    我们可以在不使用内联和 标签的基础上对网站添加漂亮而细腻的风格样式。事实上,我们目前的设计能力已经让我们远离了那个可怕的浏览器战争时代、专有协议和那些充满闪动、滚动和闪烁的丑陋网页。 虽然我们现在...

    html5.2 dialog简介详解

    说起 dialog 标签,可能很多人都比较陌生,毕竟这个标签直到 HTML5.2 标准固定,也只是 chrome 的浏览器才支持的,那至于该标签的用处,根据语义也可以很明显的理解到,会话。 这里我们可能会想到的是, alert , ...

    超经典的Web前端与移动开发基础视频 Web前端基础开发视频教程 移动开发基础视频教程

    41前端开发基础视频-HTML语义化.avi 42前端开发基础视频-HTML标签的显示模式.avi 43前端开发基础视频-HTML部分总结.avi 44前端开发基础视频-CSS定义与HTML结构之间的关系.avi 45前端开发基础视频-行内样式和...

    html入门到放弃笔记

    HTML5 1、WEB基础知识(了解) 1、Internet - 网 由若干台电脑、手机、平板 通过 网线(WIFI) 连接起来的结构 2、基于Internet上的程序 1、C / S 结构 Client / Server 特点:必须通过指定的客户端软件才能访问...

    全面的前端开发资料汇总

    HTML语义化 一定要了解,否则很容易标签乱用 CSS CSS教程 W3C入门教程 DIV+CSS 比W3C详细些,作为参考 JavaScript JavaScript教程 W3C入门教程 Google JavaScript代码风格指南 Google的,适合作为企业规范 ...

    精通AngularJS part1

    其核心特性是:MVC、模块化、自动双向数据绑定、语义化标签、依赖注入等。 作者简介 Pawel Kozlowski有15年以上的Web开发经验,接触过多种Web技术、语言和平台。他精通客户端和服务器端编程,并始终在寻找能提高...

    spring chm文档

    13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9...

    Spring 2.0 开发参考手册

    13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9...

    Spring中文帮助文档

    13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 ...

    Spring API

    13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 ...

    详解AngularJS中module模块的导入导出

    AngularJS是一款来自Google的前端JS框架,它的核心特性有:MVC、双向数据绑定、指令和语义化标签、模块化工具、依赖注入、HTML模板,以及对常用工具的封装,例如$http、$cookies、$location等。 关于AngularJS中...

    bootstrap中的 form表单属性role=”form”的作用详解

    html 里面的 role 本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明。通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性、可用性和可交互性。 role的作用是...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9.9. ...

    php网络开发完全手册

    9.1.2 语义错误 137 9.1.3 逻辑错误 137 9.1.4 注释错误 137 9.1.5 运行时的错误 138 9.2 PHP程序调试策略 138 9.2.1 PHP的错误级别 138 9.2.2 打开PHP的错误报告 140 9.2.3 使用print进行程序调试 140 9.3 使用...

Global site tag (gtag.js) - Google Analytics