前面的话

  几年前,用于网页布局一般都用div元素,但语义化并不好。HTML5引入了大量新的块级元素来帮助提升网页的语义,使页面具有逻辑性结构、容易维护,并且对数据挖掘服务更友好。本文将详细介绍HTML5结构元素

总括

  结构元素,又称为区块型元素,是用来定义区块内容范围的元素。之前,区块型元素只有<div>一个,HTML5新增了7个语义化结构元素,包括<article>、<aside>、<nav>、<section>、<header>、<footer>、<main>

section

  Section元素(<section>)表示文档中的一个区域(或节),是区块级通用元素。比如,内容中的一个专题组,一般来说会有包含一个标题(heading)。一般通过是否包含一个标题(<h1>-<h6> element)作为子节点,来辨识每一个<section>

  [注意]如果元素内容可以分为几个部分的话,应该使用<article>而不是<section>;再有,不要把<section>元素作为一个普通的容器来使用,这是本应该是<div>的用法。 一般来说,一个<section>应该出现在文档大纲中

article

  <article>元素表示文档、页面、应用或网站中的独立结构,其意在成为可独立分配的或可复用的结构。可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目。当<article>元素嵌套使用时,则该元素代表与外层元素有关的文章。例如,代表博客评论的<article>元素可嵌套在代表博客文章的<article>元素中

  <article>元素的作者信息可通过<address>元素提供,但是不适用于嵌套的<article>元素;<article>元素的发布日期和时间可通过<time>元素的pubdate属性表示

  [注意]对于<article>和<section>来说,是必须要加上标题的

aside

  <aside>元素表示一个和其余页面内容几乎无关的部分,被认为是独立于该内容的一部分并且可以被单独的拆分出来而不会使整体受影响。一般用于表示不直接相关内容的侧边栏,<aside>里面的内容与它所关联的内容相互独立,谁缺了谁都不影响各自文本含义的理解。如一篇文章的广告、相关背景和引述内容等

nav

  HTML导航栏(<nav>)描绘一个含有多个超链接的区域,这个区域包含转到其他页面,或者页面内部其他部分的链接列表

  并不是所有的链接都必须使用<nav>元素,它只用来将一些热门的链接放入导航栏,例如<footer>元素就常用来在页面底部包含一个不常用到,没必要加入<nav>的链接列表

  一个网页也可能含有多个<nav>元素,例如一个是网站内的导航列表,另一个是本页面内的导航列表

header

  <header>元素表示页面头部或区块头部,用于将介绍内容和区块的辅助导航分组到一起,所以它有可能包含区块的标题元素以及其他的介绍内容(目录、logo等)

   [注意]由于<header>和<footer>元素不是分节内容,所以不会引入新的分节到大纲中

footer

  <footer>元素表示最近一个章节内容或者根节点(sectioning root)元素的页脚。一个页脚通常包含该章节作者、版权数据或者与文档相关的链接等信息

  [注意]<footer>元素内的作者信息应包含在<address>元素中

main

  <main>元素放在最后说,是因为<main>不常用,最主要的原因是IE浏览器都不支持

  main元素(<main>)呈现了文档<body>或应用的主体部分。主体部分由与文档直接相关,或者扩展于文档的中心主题、应用的主要功能部分的内容组成。这部分内容在文档中应当是独一无二的,不包含任何在一系列文档中重复的内容

  <main>标签不能是以下元素的继承,包括<article>、<aside>、<footer>、<header>、或<nav>。 在一个文档中不能出现一个以上的 <main>标签

  所以,一个正常的最外层布局应该是下面这样

<header></header>
<main>
<section></section>
<section></section>
<section></section>
</main>
<footer></footer>

  但现在,一般地,布局如下

<header></header>
<section></section>
<section></section>
<section></section>
<footer></footer>

案例说明

  想找一个规范使用html5新标签的网站不是很容易,国内大多数网站由于各种各样的原因,依然还是div布局,最终,案例选择使用苹果官网

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>苹果首页</title>
</head>
<body>
<nav>
<ul>
<li><a href="#">Apple</a></li>
<li><a href="#">Mac</a></li>
<li><a href="#">iPad</a></li>
<li><a href="#">iPhone</a></li>
<li><a href="#">Watch</a></li>
<li><a href="#">Music</a></li>
<li><a href="#">技术支持</a></li>
<li><a href="#">搜索</a></li>
<li><a href="#">购物袋</a></li>
</ul>
</nav>
<article>
<section>展示1</section>
<section>展示2</section>
<section>展示3</section>
<section>展示4</section>
<nav>
<ul>
<li>按钮1</li>
<li>按钮2</li>
<li>按钮3</li>
<li>按钮4</li>
</ul>
</nav>
</article>
<aside>
<ul>
<li><a href="#">Watch</a></li>
<li><a href="#">Pencil</a></li>
<li><a href="#">iPad</a></li>
<li><a href="#">MacBook</a></li>
</ul>
</aside>
<footer>
<nav>
<div>选购及了解</div>
<div>商店</div>
<div>应用</div>
<div>账户</div>
<div>关于</div>
</nav>
<section>
<div>其他杂项</div>
</section>
</footer>
</body>
</html>

HTML5结构元素的更多相关文章

  1. HTMl5结构元素:article

    article: 表示文档.页面.应用程序或站点中的自包含成分所构成的一个页面的一部分,并且这部分专用于独立地分类或复用.(例如:一个博客的帖子,一篇文章,一个视频文件等.)和<nav>一 ...

  2. 读书笔记:《HTML5开发手册》--HTML5新的结构元素

    读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...

  3. HTML5 语义元素(一)页面结构

    本篇主要介绍HTML5增加的语义元素中关于页面结构方面的,包含: <article>.<aside>.<figure>.<figcaption>.< ...

  4. 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.结构元素 可以理解为语义话标记,比如:以前这么写&l ...

  5. 【原】HTML5 新增的结构元素——能用并不代表对了

    做移动端有一段时间,今天有同事问了我 article 和 section 标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬.忽然间觉得自己有必要再翻翻书籍,重温下 html5 的新元素.html ...

  6. HTML5之结构元素

    1:文档结构元素 1.1 文章语义 --  article.header和footer元素 article元素在页面中用来表示结构完整且独立的内容部分,如论坛的一个帖子,杂志或者报纸的一篇文章. ar ...

  7. 【HTML5 3】《html5 开发精要与实例讲解》 step2 -- 结构元素 (待续)

    主要内容:通过 一个博客网站和一个企业网站的制作 展示如何运用HTML5中的各种 结构元素,构建出一个语义清晰,结构分明的Web3.0时代的网站. 案例1:用HTML5中的结构元素构建一个博客网站 疑 ...

  8. HTML5的新的结构元素介绍

    HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 ...

  9. HTML5学习笔记(三):语义化和新增结构元素

    在HTML5之前,使用机器来阅读一个网页是非常困难的,我们使用不同样式的div来标记不同的内容,所以实际上机器无法得知页面的哪个部分是正文,哪个部分是标题,那么在HTML5里,针对这个问题就引入了语义 ...

随机推荐

  1. setAttribute()

    ●节点分为不同的类型:元素节点.属性节点和文本节点等.   ●getElementById()方法将返回一个对象,该对象对应着文档里的一个特定的元素节点.   ●getElementsByTagNam ...

  2. sonn_game网站开发01:写在最前面

    之前做的个人博客项目,日向博客现在已经进入后期完善阶段了.是时候开始打造一个新坑了. 然而改造个什么坑呢?构思了好几天,想了好多方案,都觉得没啥动手欲望.因为,我想做的是那种,自己能用得上,而且有一定 ...

  3. Java 输出流中的flush方法

    转自:http://blog.csdn.net/jiyangsb/article/details/50984440 java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中 ...

  4. jQuery学习之路(4)- 动画

    ▓▓▓▓▓▓ 大致介绍 通过jQuery中基本的动画方法,能够轻松地为网页添加非常精彩的视觉效果,给用户一种全新的体验 ▓▓▓▓▓▓ jQuery中的动画 ▓▓▓▓▓▓ show()和hide()方法 ...

  5. 做一个gulp+webpack+vue的单页应用开发架子

    1.目标 最近项目上的事情不多,根据我自己的开发习惯,决定开发一些简单的开发架子,方便以后事情多的时候直接套用.本文讲的一个gulp+webpack+vue的单页应用架子,想要达到的目的: 可以通过命 ...

  6. golang语言构造函数

    1.构造函数定义 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数 ,可根据其参数个 ...

  7. JDK动态代理

    一.基本概念 1.什么是代理? 在阐述JDK动态代理之前,我们很有必要先来弄明白代理的概念.代理这个词本身并不是计算机专用术语,它是生活中一个常用的概念.这里引用维基百科上的一句话对代理进行定义: A ...

  8. 负载均衡——nginx理论

     nginx是什么? nginx是一个强大的web服务器软件,用于处理高并发的http请求和作为反向代理服务器做负载均衡.具有高性能.轻量级.内存消耗少,强大的负载均衡能力等优势.  nginx架构? ...

  9. SpringMVC+Shiro权限管理【转】

    1.权限的简单描述 2.实例表结构及内容及POJO 3.Shiro-pom.xml 4.Shiro-web.xml 5.Shiro-MyShiro-权限认证,登录认证层 6.Shiro-applica ...

  10. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...