图1. Acme United的网页的规划

Header区的例子包含了页面标题和副标题,< header>标签被用来创建页面的Header区的内容。除了网页本身之外,< header>标签还可以包含关于< section>和< article>的公开信息。这里创建的网页有该页面的一个Header区,这在高层设计中有给出,以及一个位于Article和Section区内部的Header区。

清单1提供了一个< header>标签标记的例子。

清单1. < header>标签的例子

< header>
< h1>标题文字< /h1>
< p> 文本或是图像可放在这里< /p>
< p> Logo通常也放在这个地方< /p>
< /header>

< header>标签还可以包含一个< hgroup>标签,如清单2所示。< hgroup>标签把标题分组放在一起,使用< h1>到< h6>这些标题分级来在此处显示主标题和子标题。

清单2. < hgroup>标签的例子

< header>
< hgroup>
< h1>主标题< /h1>
< h2>子标题 < /h2>
< /hgroup>
< p> 文本或是图像可放在这里< /p>
< /header>

注:< header>< hgroup>这2个最好不要同时使用。

Navigation区


你可以使用< nav>标签来创建页面的Navigation区。< nav>元素定义了一个专门用于导航的区域,< nav>标签应该用做主站点的导航,而不是用来放置被包含在页面的其他区域中的链接。Navigation区可以包含诸如清单3所示的代码。

清单3. < nav>标签的例子

< nav>
< ul>
< li>< a href="#" kesrc="#">Home< /a>< /li>
< li>< a href="#" kesrc="#">About Us< a>< /li>
< li>< a href="#" kesrc="#">Our Products< /a>< /li>
< li>< a href="#" kesrc="#">Contact Us< /a>< /li>
< /ul>
< /nav>

Article和Section区


你设计的页面包含了一个Article区,该区域存放了页面的实际内容。你使用< article>标签来创建这一区域,该标签定义的内容可独立于页面中的其他内容使用。例如,如果想创建一个RSS源(RSS feed)的话,那么你可以使用< article>来唯一标识该内容。< article>标签标识了可被删除、可被放置在另一上下文中,并且是可被完全理解的内容。

Acme United规划中的Article区包含了三个Section区,可使用< setction>标签来创建这几个区域。< section>包含了web内容的相关组件区域,< section>标签——以及< article>标签——可以包含页眉、页脚,或是其他需要用来完成该部分内容的组件。< section>标签用于分组的内容,< section>标签和< article>标签通常以一个< header>为开始并以一个< footer>结束,标签的内容则放在这两者之间。

< section>标签也可以包含< article>标签,就像< article>标签可以包含< section>标签一样。< section>标签应该用来分组相类似的信息,而< article>标签则应该是用来放置诸如一篇文章或是博客一类的信息,这些内容可在不影响内容含义的情况下被删除或是被放置到新的上下文中。< article>标签,正如它的名称所暗示的那样,提供了一个完整的信息包。相比之下,< section>标签包含的是有关联的信息,但这些信息自身不能被放置到不同的上下文中,因为这样的话其所代表的含义就会丢失。

< article>和< section>标签的用法例子请参见清单4。

清单4. < article>标签和< section>标签的例子

< article>
< section>
Content
< /section>
< section>
Content
< /section>
< /article>
< section>
< article>
Content
< /article>
< article>
Content
< /article>
< /section>

图像元素

< section>和< article>标签这两者,以及< header>和< footer>标签都可以包含< figure>标签,你使用该标签来加入图像、图表和照片。

< figure>标签可以包含< figcaption>,该标签相应的包含了包含在< figure>标签中的图形的标题,其允许你输入描述,把图形和内容更加紧密的关联起来。清单5提供了一个< figure>和< figcaption>标签结构的例子。

清单5. < figure>和< figcaption>标签的例子

< figure>
< img src="/figure.jpg" kesrc="/figure.jpg" width="304" height="228" alt="Picture">
< figcaption>Caption for the figure< /figcaption>
< /figure>

媒体元素

< section>和< article>标签还可以包含各种媒体元素,HTML5提供的标签立刻就传达了其内容的意思。媒体元素,比如说音乐和视频,以前只能嵌入,但现在能够被更精准地标识出来。

< audio>标签标识了声音内容,比如说音乐或是任何的其他音频流。< audio>标签有一些属性用来控制音频的内容、何时以及如何播放等方面的情况,这些属性分别是:src、preload、control、loop和autoplay。在清单6给出的例子中,只要页面一加载音频就开会播放,其会持续播放,所提供的控制可以让用户停止或是重新开始播放音频。

清单6. < audio>标签的例子

< audio src="MyFirstMusic.ogg" kesrc="MyFirstMusic.ogg" controls autoplay loop>
Your browser does not support the audio tag.
< /audio>

< video>标签允许你播放视频片段或是流化视觉媒体。其拥有< audio>标签所有的属性,另外再加上三个:poster、width和height。当视频正在加载或是视频处于完全没有加载的糟糕情况中时,poster属性可让你找出一张图像来应付着先。

清单7提供了一个< video>标签结构的例子

清单7. 标签的例子

< video src="MyFirstMovie.ogg" kesrc="MyFirstMovie.ogg" controls="controls">
Your browser does not support the video tag
< /video>

< video>和< audio>标签可以包含< source>标签,该标签定义了< video>和< audio>标签的多媒体资源。使用这一元素,你可以指定替代的视频或是音频文件,然后浏览器就可以基于它的媒体类型或是所支持的编解码器来从中进行选择。清单8中有两种选择,如果文件的WMA版本不能在所使用的浏览器中播放的话,就再尝试MP3版本。否则的话就显示信息,这样用户就知道为什么音频不可用了。

清单8. < source>标签的例子

< audio>
< source src="/music/good_enough.wma" kesrc="/music/good_enough.wma" type="audio/x-ms-wma">
< source src="/music/good_enough.mp3" kesrc="/music/good_enough.mp3" type="audio/mpeg">
< p>Your browser does not support the HTML 'audio' element.< /p>
< /audio>

< embed>标签定义了可带入到页面中的嵌入式内容——例如, 一个Adobe Flash SWF文件的插件。清单9包含了type属性,标明嵌入的资源为Flash文件。

清单9. < embed>标签的例子

< embed src="MyFirstVideo.swf" kesrc="MyFirstVideo.swf" type="application/x-shockwave-flash" />

除了src和type属性之外,< embed>标签还拥有height和width属性。

Aside区


Acme United规划中的Aside区可通过使用< aside>标签来创建。这一标签被看作是用来存放补充内容的地方,这些内容不是其所补充的一篇连续文章的组成部分。在杂志上,插入语(aside)通常被用来突出文章本身所制造的一个观点。< aside>标签包含的内容可被删除,而这不会影响到包含了该内容的文章、章节或是页面所要传达的信息。

清单10提供了< aside>标签用法的一个例子。

清单10. < aside>标签的例子

< p>My family and I visited Euro Disney last year.< /p>
< aside>
< h4>Disney in France< /h4>
< p>Besides Euro Disney, there is a Disneyland in California.< /p>
< /aside>

Footer区


< footer>元素包含了与页面、文章或是部分内容有关的信息,比如说文章的作者或是日期。作为页面的页脚,其有可能包含了版权或是其他重要的法律信息,如清单11所示。

清单11. < footer>标签的例子

< footer>
< p>Copyright 2011 Acme United. All rights reserved.< /p>
< /footer>

构建页面


现在你已经了解了需要用来创建一个HTML5页面的基本标签,让我们开始构建你的页面。你会为Acme United构建一个网页,完成后的页面如图2所示,该页面可以下载供你使用(参见下载一节)。

图2. Acme United的网页

那么,让我们把页面装配起来吧。首先要处理的是这个< !doctype>,在HTML5中,< !doctype>被简化了:所有你需要记住就是html。这不仅是简化了这一标签的条目,而还把它变得更适应未来的发展。需要注意的是,它不是被称为html5,就只是html。不管来来去去的有多少个HTML版本,< !doctype>可以一直都是html。

< html>标签包含了所有除了< !doctype>标签之外的其他HTML元素,其他的每一个元素都必须嵌套在< html>和< /html>标签之间,参见清单12。

清单12. < !doctype>标签的例子

< !doctype html>
< html lang="en">

在指出了html和语言为英语之后,你就可以使用< head>元素,该元素可以包含脚本、浏览器支持信息、样式表链接、meta信息和其他的初始化函数。你可以在head这一区域中使用这些标签:

1. < base>
2. < link>
3. < meta>
4. < script>
5. < style>
6. < title>

< title>标签存放文档的实际标题,这是一个必需的< head>区元素,它的内容就是你在浏览该页面时会在浏览器的顶端看到的标题。清单13中的< link>标签标识了会被用来渲染HTML5页面的CSS3样式表,样式表的文件名为main-stylesheet.css。

清单13. < head>标签的例子

< head>
< title>HTML5 Fundamentals Example< /title>
< link rel="stylesheet" href="main-stylesheet.css" kesrc="main-stylesheet.css" />
< /head>

接下来你会用到< body>标签,后面跟着< header>和< hgroup>标签,这已经在前面介绍过。本例中的< h1>区域包含了虚构公司的名称:Acme United,< h2>区域包含了让你知晓副标题是“A Simple HTML5 Example”的信息,清单14显示了这一标记。

清单14. < body>标签和< header>标签的例子

< body >
< header>
< hgroup>
< h1>Acme United< /h1>
< h2>A Simple HTML5 Example< /h2>
< /hgroup>
< /header>

到目前为止,被用来设置页面的CSS3如清单15所示。首先,你建立页面的字体,然后量身定做页面的主体,明确主体的维度,然后设计header段结构的第一级和第二级标题标签,这些是你要给页面使用的header。

清单15. CSS3例子1

* {
font-family: Lucida Sans, Arial, Helvetica, sans-serif;
}

body {
width: 800px;
margin: 0em auto;
}

header h1 {
font-size: 50px;
margin: 0px;
color: #006;
}

header h2 {
font-size: 15px;
margin: 0px;
color: #99f;
font-style: italic;
}

清单16展示了< nav>标签 ,其目的是处理主站点的导航。

清单16. < nav>例子

< nav>
< ul>
< li>< a href="#" kesrc="#">Home< /a>< /li>
< li>< a href="#" kesrc="#">About Us< /a>< /li>
< li>< a href="#" kesrc="#">Contact Us< /a>< /li>
< /ul>
< /nav>

HTML5还有一个< menu>标签——一个给一些设计者和开发者带来混乱的标签。这一混乱源于导航条通常被称为“导航菜单”。< menu>标签在HTML的4.01版本中被弃用,但在HTML5中又死里复生,目的是用来增强交互性。它不应该用来做主导航。唯一应该用来做主导航的标签是< nav>标签,你迟一些就会在本例中用到< menu>标签。

导航的格式化问题由CSS3来处理。清单17中给出的每个< nav>标签的定义都代表了< nav>标签内的< ul>和< li>元素的一个特定状态。

清单17. CSS3例子2

nav ul {
list-style: none;
padding: 0px;
display: block;
clear: right;
background-color: #99f;
padding-left: 4px;
height: 24px;
}
nav ul li {
display: inline;
padding: 0px 20px 5px 10px;
height: 24px;
border-right: 1px solid #ccc;
}

nav ul li a {
color: #006;
text-decoration: none;
font-size: 13px;
font-weight: bold;
}

nav ul li a:hover {
color: #fff;
}

接下来是Article区,这一区域由< article>标签来定义,其中包括了其自己的< header>信息。包含在< article>中的< section>也包含了一个自己的的< header>标签,参见清单18。

清单18. < article>和< section>的例子

< article>
< header>
< h1>
< a href="#" kesrc="#" title="Link to this post" rel="bookmark">Article Heading< /a>
< /h1>
< /header>
< p> Primum non nocere ad vitam Paramus . . . < /p>
< section>
< header>
< h1>This is the first section heading< /h1>
< /header>
< p>Scientia potentia est qua nocent docentp . . .< /p>
< /section>

清单19展示了渲染这一格式的CSS3标记,可以注意到,段落、header和section区的定义都定义在包含了它们的< article>标签上。这里定义的< h1>标签和页面级别定义的< h1>标签有着不同的格式。

清单19. CSS3例子3

article > header h1 {
font-size: 40px;
float: left;
margin-left: 14px;
}

article > header h1 a {
color: #000090;
text-decoration: none;
}

article > section header h1 {
font-size: 20px;
margin-left: 25px;
}

article p {
clear: both;
margin-top: 0px;
margin-left: 50px;
}

< article>中包含的第二个< section>标签包含了与第一个< section>相同的基本信息,但这一次你要用到一个< aside>、一个< figure>、一个< menu>和一个< mark>标签,参见清单20。

这里使用< aside>标签来表示的信息并非是围绕着它的那些连续内容的组成部分。< figure>标签包含了一个Stonehenge的图片。< section>标签还包含了一个< menu>标签,该标签被用来创建使用了四个缪斯女神的名字来命名的按钮。当某个按钮被点击时,其提供相应缪斯女神的的信息。< mark>标签被用在< p>标签中,以此来突出显示veni、vidi和vici等词。

清单20. < article>和< section>的例子

< section>
< header>
< h1>Second section with mark, aside, menu & figure< /h1>
< /header>
< p class="next-to-aside"> . . . < mark>veni, vidi, vici< /mark>. Mater . . .< /p>
< aside>
< p>This is an aside that has multiple lines. . . .< /p>
< /aside>
< menu label="File">
< button type="button" onClick="JavaScript:alert('Clio . . .')">Clio< /button>
< button type="button" onClick="JavaScript:alert('Thalia . . .')">Thalia< /button>
< button type="button" onClick="JavaScript:alert
('Urania . . .')">Urania< /button>
< button type="button" onClick="JavaScript:alert
('Calliope . . .')">Calliope< /button>
< /menu> 
< figure>< img src="stonehenge.jpg" kesrc="stonehenge.jpg" alt="Stonehenge" width="200" height="131"/>
< figcaption>Figure 1. Stonehenge< /figcaption>
< /figure>
< /section>

这一部分的CSS3包括了一个新的< p>标签的定义,该标签有着比为页面所设的宽度更小的宽度。这种改动允许aside浮在右边而又不会遮盖到文字。清单21显示了这一标记。

清单21. CSS3例子4

article p.next-to-aside {
width: 500px;
}

article > section figure {
margin-left: 180px;
margin-bottom: 30px;
}

article > section > menu { 
margin-left: 120px;
}

aside p { 
position:relative;
left:0px;
top: -100px;
z-index: 1;
width: 200px; 
float: right;
font-style: italic; 
color: #99f;
}

视频部分的元素

这是< article>的最后一个组件:视频部分。例子视频是ogg格式的,在页面被载入后就自动播放,不断循环,并提供暂停和播放控制。在当前的许多实际情况中,ogg视频使用的是ogv(v表示视频)扩展名,如清单22所示。< audio>标签以同样的方式工作。

清单22. < article>和< section>的例子

< section>
< header>
< h1>This is a video section< /h1>
< /header>
< p>< video src="http://people.xiph.org/~maikmerten/demos/BigBuckBunny.ogv" kesrc="http://people.xiph.org/~maikmerten/demos/BigBuckBunny.ogv" 
controls autoplay loop>
< div class="no-html5-video">< p>This video will work in 
Mozilla Firefox or Google Chrome only. < /p>
< /div>
< /video>< /p>
< /section>
< /article>

清单23提供了video部分的CSS3定义。

清单23. CSS3例子5

article > section video {
height: 200px;
margin-left: 180px;
}

article > section div.no-html5-video{
height: 20px;
text-align: center;
color: #000090;
font-size: 13px;
font-style: italic;
font-weight: bold ;
background-color: #99f;
}

页面的页脚和结束部分如清单24所示。

清单24. < footer>标签的例子

< footer>
< p>Copyright: 2011 Acme United. All rights reserved.< /p>
< /footer>
< /body>
< /html>

页脚的CSS3如清单25所示。

清单25. CSS3例子5

footer p {
text-align: center;
font-size: 12px;
color: #888;
margin-top: 24px;
}

结论


网页的构建完成结束了这一多部分组成的系列的第一部分。本篇文章的目的是介绍新的HTML5机制。HTML5不仅是HTML4的一个升级:它还是一种新的数字化通信方式。借助于CSS3和JavaScript的功能,HTML5接近于在一个伪包中为开发者提供了全部的一切。如果你愿意从已有的大量的HTML5信息中吸取你所需的内容来,并把它们用到我们的常见做法中的话,那么你将会加入到这一个由称职的的HTML5多媒体web设计者和开发者组成的正在不断壮大的军团中。这一系列的下一篇文章将着眼于如何编写和格式化HTML5的表单。

html5学习之第一步:认识标签,了解布局的更多相关文章

  1. 学习Java第一步:安装Intellij IDEA和JDK

    注:其实真正学习一门新语言的第一步并不是安装开发工具,我是C#转JAVA,有一点编程经验了,所以可以直接跳过前面几步,直接上IDE. 1.下载IntelliJ IDEA [官网] http://www ...

  2. 学习opengl第一步

    有两个地址一个是学习opengl基础知识的网站, 一个是博客园大牛分享的特别好的文章. 记录一下希望向坚持做俯卧撑一样坚持下去. 学习网站:http://learnopengl-cn.readthed ...

  3. 学习 WebService 第一步:体系结构、三元素SOAP/WSDL/UDDI

    原文地址:爱军的博客——WebService简介 一.为什么需要Web Service 笔记: WebService 可以实现 跨(硬件.服务器.开发工具.平台.应用程序.程序语言……)共享数据和应用 ...

  4. HTML5学习总结-番外05 响应式布局

    1. 响应式布局 响应式布局是2015年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的.其目的是为用户提欧共更加 ...

  5. Qt 学习第一步 做计划和确定目标

    接下来開始一步步深入学习Qt. 学习的第一步是整理资料,也就是找书和sample. 逛了一些论坛,推荐以下3本书 1> C++ GUI programming with Qt 4(2nd Edi ...

  6. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

  7. Vue踩坑第一步,安装Vue最新版本

    学习vue第一步肯定是安装vue-cli,那么肯定想去搜下如何安装vue-cli呢? 网上搜到的结果大都是: npm i vue-cli -g 输入vue -V发现: 输入node -v发现: 自己明 ...

  8. HTML5 学习总结(一)——HTML5概要与新增标签

    一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸 ...

  9. HTML5 学习笔记(一)——HTML5概要与新增标签

    目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...

随机推荐

  1. JPush设置别名不走成功回调的解决办法

    在参考了极光推送的文档之后,对个推(单个推送)有设置别名的方法,方法如下 [JPUSHService setTags:tags alias:alias fetchCompletionHandle:^( ...

  2. python爬虫:爬取医药数据库drugbank

    这个是帮朋友做的,难点就是他们有一个反爬虫机制,用request一直不行,后面我就用selenium直接把网页copy下来,然后再来解析本地的html文件,就木有问题啦. 现在看来,写得有点傻,多包涵 ...

  3. 利用Windows2003 IP安全策略实现服务器远程桌面端口(3389)访问控制

    1 开始 → 运行 → 对话框中输入gpedit.msc → 确定 2 打开“组策略编辑器” 计算机配置 → Windows配置 → 右键点击“IP安全策略,在 本地计算机” →选择“创建IP安全策略 ...

  4. DDD中 与Dto搭配的AutoMapper插件,摘自《NET企业级应用架构设计》

    AutoMapper插件 实现了 DTO与Model的互相映射.

  5. 带你学C带你飞!

    C语言免费课程推荐:带你学C带你飞! 想学习C语言,首先就要了解什么是C语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码 ...

  6. Vim 学习指南

    作者:耀耀 出处:http://www.linuxeden.com/html/news/20130820/142667.html Vim 学习指南 来源:开源中国社区 作者:耀耀 关注我们:   你想 ...

  7. 2019-03-28 Python SQL 的注释

    SQL Server 多行注释 : ctrl + k + c SQL Server 单行注释:  -- Python 单行注释:# Python多行注释:''' '''

  8. 洛谷P5238 整数校验器

    看到没有边读入边处理的,我来水一发 我们要看一下有那些情况是格式不合法的 单独的负号 -0(后面可以有其他数字) 0 +(后面一些数字) 我们用快速读入的方法 读取字符进行处理 还有可能超出范围的 考 ...

  9. springboot的几个缓存相关注解

    @Cacheable:查询 几个属性: ​ cacheNames/value:指定缓存组件的名字: ​ key:缓存数据使用的key,可以用来指定.默认即使用方法参数的值 ​ keyGenerator ...

  10. 【codeforces 733E】Sleep in Class

    [题目链接]:http://codeforces.com/problemset/problem/733/E [题意] 有n级台阶,每个台阶上都有一个tag; 标记着向上或向下; 你到了某级台阶,就要按 ...