HTML5学习入门到实战,保姆式教程

1 篇文章 0 订阅
1 篇文章 0 订阅

一、概述

HTML5是继  HTML4.01 XHTML1.0 之后的超文本标记语言的最新版本。它是由一群
自由思想者组成的团队设计出来,并最终实现多媒体支持、交互性、更加智能的表单,以及
更好的语义化标记。
HTML5并不仅仅是  HTML规范的最新版本,而是一系列用来制作现代富 Web内容的
相关技术的总称,其中最重要的三项技术分别为: HTML5核心规范(标签元素)、 CSS(层
叠样式表第三代)、和 JavaScript
一.HTML5的历史
1993年  HTML首次以因特网草案的形式发布,然后经历了 2.03.2 和  4.0,直到  1999
年的 HTML4.01版本稳定下来。由于发展缓慢,逐渐的被更加严格的  XHTML取代。
XHTML的兴衰史
自从 HTML4.01 版本之后,掌握着  HTML规范的万维网联盟(W3C)组织没有再发布新
的标准,而是围绕着 XHTML1.0以及之后的  XHTML2.0展开工作。 XHTML是基于  XML 、致力
于实现更加严格并且统一的编码规范的 HTML版本,解决之前 HTML4.01版本时,由于编码
不规范导致浏览器的各种古怪行为。所以, Web开发者对  XHTML 非常的拥护。 XHTML极大
的好处,就是强迫开发者养成良好的编码习惯,放弃 HTML的凌乱写法,最终降低了浏览器
解析页面的难度,方便移植到更多平台。
可是,越是想往好的方面发展,往往可能是带来的却是毁灭性的灾难,世间万物就是如
此。XHTML2.0规范了更严格的错误处理规则,强制要求浏览器拒绝无效的  XHTML2页面,
强制 Web开发者写出绝对正确规范的代码,同时不得向下兼容,摒弃  HTML遗留的怪异行为
和编码习惯。按理说,取其精华、舍其糟粕应该是好事。但是,这样的话,数亿的页面将无
法兼容,Web开发者的难度又被加大,并且制定这个标准又太过久远,最终被抛弃。
HTML5的回归
2008年  W3C发布了 HTML5 的工作草案, 2009年停止了   XHTML2计划。又过去大概一
年,HTML5规范进一步解决了诸多非常实际的问题,各大浏览器厂商开始对旗下的产品进行
升级,以便支持 HTML5。这样,得益于浏览器的实验反馈, HTML5规范得到了持续的进步和
完善,从而迅速融入到 Web平台的实质性改进中。
 XHTML2.0 不同,制定  HTML5规范的一群人并不想挑出以往 HTML的各种毛病为其改
正,而是尽可能的补全 Web开发者急需的各种功能。这些功能包括更强大的  CSS3、表单验
证、音频视频、本地存储、地理定位、绘画( Canvas)、Web 通信等等。
 
二.HTML5的功能
HTML5到底涵盖了哪些功能?这些功能到底在主流的浏览器支持情况如何?
1.HTML5核心:这部分主要由  W3C官方的规范组成,涉及新的语义元素、新的增强的
Web表单、音频和视频、以及通过  JavaScript绘图的 Canvas 。这部分大多数主流浏览器
均得到很好的支持;
2.曾经的 HTML5标准:这部分主要来自于最初制定的 HTML5规范,其中大多数功能需
 JavaScript且支持富  Web应用开发。比如:本地数据存储、离线应用和消息传递;
3. HTML5标准:这部分通常指下一代功能,虽然从未进入  HTML5标准,但人们还是
会把它认做 HTML5的一部分。这些包括最为常见的 CSS3,以及很热门的地理定位。
对于最为常用且实用的部分,基本上主流的浏览器都支持的比较好。而那些特殊需求的
部分,则需要根据不同的浏览器检测才能知道是否支持自己想要的功能。
三.HTML5的特点
 HTML5发展的同时, XHTML2.0也在不断发展,那么到底是哪些特点导致  HTML5
得最终的胜利呢?
1.向下兼容
对于 XHTML2.0 要求遵循规则,否则不予显示的方式, HTML5却实行 不破坏  Web 
原则。也就是说,以往已存在的 Web页面,还可以保持正确的显示。
当然,面对开发者,HTML5规范要求摒弃过去那些编码坏习惯和废弃的标签元素;而面
对浏览器厂商,要求它们兼容 HTML遗留的一切,以做到向下兼容。
2.用户至上
HTML5遵循 用户至上的原则,在出现具体问题时,会把用户放在第一位,其次是开
发者,然后是浏览器厂商,最后才是规范制定者。比如,开发者在编码时不严谨导致本该出
现警告或错误时,却正常显示了页面。
3.化繁为简
HTML5对比之前的  XHTML,做了大量的简化工作。具体如下:
(1).以浏览器的原生能力代替复杂的 JavaScript
(2).DOCTYPE被简化到极致;
(3).字符集声明被简化;
(4).简单强大的 API
4.无插件范式
 HTML5 出现之前,很多功能只能通过插件或  hack(如绘图 API )来实现,但  HTML5
原生提供了这些支持。使用插件有很多问题,具体如下:
(1).插件安装容易失败;
(2).插件被浏览器或软件禁用屏蔽(如 Flash插件);
(3).插件经常会被爆出漏洞被利用攻击;
(4).插件不容易与 HTML文档其他部分集成(比如整体透明化等)。
 
5.访问通用性
这个原则分为三个概念:
(1).可访问性:比如更加利于残障人士的阅读方案;
(2).媒体中立:比如 HTML5的媒体播放在不同设备或平台均能正常运行;
(3).支持所有语种:比如新元素 <ruby>
6.引入语义
HTML5引入了一些用来区分不同含义和内容的标记元素。这种方式极大的提供的编码人
员的可读性和代码区域查询的便利性。
7.引入原生媒体支持
HTML5的一次大改进救生衣支持在浏览器中直接播放视频和音频文件,以前都需要借助
插件才能实现此类功能。
8.引入可编程内容
HTML5最大的变化就是引入了需要通过  JavaScript编程才能完全的各种效果,而这些
很多都是 HTML5原生的。那么现在  HTML5可以理解为  HTML +  CSS + JavaScript的总称。
四.学习问题
学习 HTML5需要一些测试用的浏览器、编码用的开发工具、以及建议推荐的学习方法。
1.浏览器选择
IE9+
Firefox  3.5+
Chrome  3.0+
Safari  3.0+
Opera  10.5+
这里重点要说明一下 IE浏览器。由于历史和系统绑定原因,还有相当一部分电脑残留
IE9以下版本的浏览器。虽然微软已经开始发表声明逐步不再维护  IE8,但这部分群体还占
有一定的份额。所以,是否要迎合这部分用户,取决于个人对市场的判断和成本的考量。
2.开发工具
本课程我们使用 Sublime  Text3作为 HTML5 课程的编码工具。使用了  Soda  Dark  3
作为软件界面的主题。

二、基本格式

一.HTML5文档结构
1.第一步:打开 Sublime  Text  3,打开指定文件夹;
2.第二步:保存 index.html文件到磁盘中,.html是网页后缀;
3.第三步:开始编写 HTML5的基本格式。
<!DOCTYPE  html>
<html  lang="zh-cn">
<head>
//文档类型声明
//表示 HTML文档开始
//包含文档元数据开始
//声明字符编码
<meta  charset="utf-8">
<title>基本结构</title>
</head>
//设置文档标题
//包含文档元数据结束
//表示 HTML文档内容
<body>
<a  href="http://www.baidu.com">百度</a>
//一个超链接元素(标签)
</body>
</html>
//表示  HTML
//表示 HTML文档结束
二.文档结构解析
1.Doctype
文档类型声明(Document Type  Declaration,也称 Doctype)。它主要告诉浏览器
所查看的文件类型。在以往的 HTML4.01和  XHTML1.0中,它表示具体的 HTML版本和风格。
而如今 HTML5不需要表示版本和风格了。
<!DOCTYPE  html>
//不分区大小写
2.html元素
首先,元素就是标签的意思,html元素即  html标签。html元素是文档开始和结尾的
元素。它是一个双标签,头尾呼应,包含内容。这个元素有一个属性和值:lang="zh-cn"
表示文档采用语言为:简体中文。
<html  lang="zh-cn">
//如果是英文则为  en
3.head元素
用来包含元数据内容,元数据包括:<link><meta><noscript><script>
<style><title>。这些内容用来浏览器提供信息,比如 link提供  CSS信息,script
提供 JavaScript信息,title提供页面标题等。
<head>...</head>
//这些信息在页面不可见
4.meta元素
这个元素用来提供关于文档的信息,起始结构有一个属性为:charset="utf8"。表示
告诉浏览器页面采用的什么编码,一般来说我们就用 utf8。当然,文件保存的时候也是
utf8,而浏览器也设置 utf8即可正确显示中文。
<meta  charset="utf-8">
//除了设置编码,还有别的
5.title元素
这个元素很简单,顾名思义:设置浏览器左上角的标题。
<title>基本结构</title>
6.body元素
用来包含文档内容的元素,也就是浏览器可见区域部分。所有的可见内容,都应该在这
个元素内部进行添加。
<body>...</body>
7.a元素
一个超链接,后面会详细探讨。
<a  href="http://www.baidu.com">百度</a>
三.元素标签探讨
HTML是一种标记语言,刚才的结构我们已经详细探讨过。这里,我们再剖析一下这些
标记或者叫标签,书面上经常称作为元素的东西是怎么构成的。
1.元素
元素就是一组告诉浏览器如何处理一些内容的标签。每个元素都有一个关键字,比如
<body><title><meta>都是元素。不同的标签名称代表不同的意义,后面将会涉及到
段落标签、文本标签、链接标签、图片标签等。
元素一般分为两种:单标签(空元素)和双标签。
单标签一般用于声明或者插入某个元素,比如声明字符编码就用<meta>,插入图片就用<img>
双标签一般用于设置一段区域的内容,将其包含起来,比如段落<p>...</p>
2.属性和值
元素除了有单双之分,元素的内部还可以设置属性和值。这些属性值用来改变元素某些
方面的行为。比如超链接:<a>中的 href属性,里面替换网址即可链接到不同的网站。当
然一个元素里面可以设置多个属性,甚至自定义属性。  

三、文本元素

一.文本元素总汇
HTML5规范指出:使用元素应该完全从元素的语义出发。但是由于历史遗留及用户至上的原则,这种语义会宽松许多。
 
 
从上面这张表格中,我们发现文本元素还是非常多的。但实际上,在现实应用中,真正
常用的也就是那么几个,绝大部分是针对英文的。
二.文本元素解析
1.<b>表示关键字和产品名称
<b>HTML5</b>
解释:<b>元素实际作用就是加粗。从语义上来看,就是标记一段文字,但并不是特别
强调或重要性。比如:一段文本中的某些关键字或者产品的名称。
2.<strong>表示重要的文字
<strong>HTML5</strong>
解释:<strong>元素实际作用和<b>一样,就是加粗。从语义上来看,就是强调一段重
要的文本。
3.<br>强制换行<wbr>安全换行(当内容满一行的时候,可以选择在某处换行)
<br>
Thisabc<wbr>dkedkslakdj<wbr>fkdlsakd  is  apple.
解释:在任意文本位置键入<br>都会被换行,而在英文单词过长时使用<wbr>会根据浏
览器的宽度适当的裁切换行。
4.<i>表示外文词汇或科技术语
<i>HTML5</i>
解释:<i>元素实际作用就是倾斜。从语义上来看,表示区分周围内容,并不是特别强
调或重要性。
5.<em>加以强调
<em>HTML5</em>
解释:<em>元素实际作用和<i>一样,就是倾斜;从语义上来看,表示对一段文本的强
调。
6.<s>表示不准确或校正
<s>HTML5</s>
解释:<s>元素实际作用就是删除线;从语义上来看,表示不准确的删除。
7.<del>表示删除文字
<del>HTML5</del>
解释:<del>元素实际作用和<s>一样,就是删除线;从语义上来看,表示删除相关文
字。
8.<u>表示给文字加上下划线
<u>HTML5</u>
解释:<u>元素实际作用就是加一条下划线;从语义上来看,并不强调此段文本。
9.<ins>添加一段文本
<ins>HTML5</ins>
解释:<ins>元素实际作用和<u>一样,加一条下划线;从语义上来看,是添加一段文
本,起到强调的作用。
10.<small>添加小号字体
<small>HTML5</small>
解释:<small>元素实际作用就是将文本放小一号。从语义上来看,用于免责声明和澄
清声明。
11.<sub><sup>添加上标和下标
<sub>5</sub>
<sup>5</sup>
解释:<sub><sup>元素实际作用就是数学的上标和下标。语义也是如此。
12.<code>等表示输入和输出
<code>HTML5</code>
<var>HTML5</var>
<samp>HTML5</samp>
<kdb>HTML5</kdb>
解释:<code>表示计算机代码片段;<var>表示编程语言中的变量;<samp>表示程序
或计算机的输出;<kdb>表示用户的输入。由于这属于英文范畴的,必须将 lang="en"英语
才能体现效果。
13.<abbr>表示缩写
<abbr>HTML5</abbr>
解释:<abbr>元素没有实际作用;从语义上看,是一段文本的缩写。
14.<dfn>表示定义术语
<dfn>HTML5</dfn>
解释:<dfn>元素就是一般性的倾斜;从语义上看,表示解释一个词或短语的一段文本。
15.<q>引用来自他处的内容
<q>HTML5</q>
解释:<q>元素实际作用就是加了一对双引号。从语义上来看,表示引用来自其他地方
的内容。
16.<cite>引用其他作品的标题
<cite>HTML5</cite>
解释:<cite>元素实际作用就是加粗。从语义上来看,表示引用其他作品的标题。
17.<ruby>语言元素
<ruby>
<rp>(</rp><rt>tāo</rt><rp>)</rp>
<rp>(</rp><rt>tiè</rt><rp>)</rp>
</ruby>
解释:<ruby>用来为非西方语言提供支持。<rp><rt>用来帮助读者掌握表意语言文字
正确发音。比如:汉语拼音在文字的上方。但目前 Firefox还不支持此特性。
18.<bdo>设置文字方向
<bdo  dir="rtl">HTML5</bdo>
解释:<bdo>必须使用属性 dir才可以设置,一共两个值:rtl(从右到左)和  ltr(从
左到右)。一般默认是 ltr。还有一个<bdi>元素也是处理方向的,由于是特殊语言的特殊
效果,且主流浏览器大半不支持,忽略。
19.<mark>突出显示文本
<mark>HTML5</mark>
解释:<mark>实际作用就是加上一个黄色的背景,黑色的字;从语义上来看,与上下
文相关而突出的文本,用于记号。
20.<time>表示日期和时间
<time>2015-10-10</time>
解释:<time>元素没有实际作用;从语义上来看,表示日期和时间。
21.<span>表示一般性文本
<span>HTML5</span>
解释:<span>元素没有实际作用;语义上就是表示一段文本,我们经常用它来设置  CSS
等操作。

四、超链接和路径

一.超链接的属性

<a>元素属于文本元素,有一些私有属性或者叫局部属性。那么,相对应的还有通用属

性或叫做全局属性。这方面的知识,后面会详细探讨。

在这几个属性当中,只有 href  和  target一般比较常用,而 href是必须要用的。

其他几个属性,在<a>元素使用较少,将在 CSS章节再探讨。

1.href属性:记得要加上http://

<a  href="http://www.baidu.com">百度</a>

解释:href是必须属性,否则<a>元素就变成空元素了。如果属性值是  http://开头

的 URL,意味着点击跳转到指定的外部网站。

2.target属性

<a  href="http://www.baidu.com"  target="_blank">百度</a>

解释:target属性告诉浏览器希望将所链接的资源显示在哪里。

这四种最常用的是_blank,新建一个窗口。

而_self是默认,当前窗口打开。

_parent和_top是基于框架页面的,分别表示在父窗口打开和在整个窗口打开。

而HTML5中,框架基本被废弃,只能使用<iframe>元素,且以后大量结合 JavaScript和PHP等语言配合,

框架用的就很少了。

二.相对与绝对路径

所谓相对路径,就是相对于链接页面而言的另一个页面的路径。

而绝对路径,就是直接从 file:///磁盘符开始的完整路径。我们在同一个目录下做上两个页面,其中一个页面链

接到另一个页面。

1.绝对路径

<a  href="file:///D:/备课/HTML5第一季/code/index2.html">index2</a>

解释:首先是 file:///开头,然后是磁盘符,然后是一个个的目录层次,找到相应文

件。

这种方式最致命的问题是,当整个目录转移到另外的盘符或其他电脑时,目录结构一旦出现任何变化,链接当即失效。

2.相对路径

<a  href="index2.html">index2</a>

解释:相对路径的条件是必须文件都在一个磁盘或目录下,

如果是在同一个目录下,直接属性值就是被链接的文件名.后缀名。如果在同一个主目录下,有多个子目录层次,那就

需要使用目录结构语法。

3.目录语法

同一个目录:index2.html或./index2.html;

在子目录:xxx/index2.html;(XXX为目录名)

在孙子目录:xxx/xxx/index2.html;

在父目录:../index2.html; (./是当前目录,../是父亲目录)

在爷爷目录:../../index2.html;

三.锚点设置

超链接也可用来将同一个文档中的另一个元素移入视野。

通过属性 id或 name实现锚点定位。

//链接

<a href="#1">点击我到第一章</a>  <a href="#2">点击我到第二章</a>  <a  href="#3">点击我到第三章</a>

//锚点

<a  name="1">第一章</a>  <a  id="3">第三章</a>

五、分组元素

一.分组元素总汇

为了页面的排版需要,HTML5提供了几种语义的分组元素。

二.分组元素解析

1.<p>建立段落

<p>这是一个段落</p>

<p>这也是一个段落</p>

解释:<p>元素实际作用就是将内部包含的文本形成一个段落;而段落和段落之间保持

一定量的空隙。

2.<div>通用分组

<div>这是一个通用分组</div>

<div>这是又一个通用分组</div>

解释:<div>元素在早期的版本中非常常用,通过<div>这种一般性分组元素进行布局。

而在 HTML5中,由于语义的缘故,被其他各种文档元素所代替。和<p>段落的区别就是,两

段文本的上下空隙是没有的,空隙间隔和<br>换行一样。

3.<blockquote>引用大段他出内容

<blockquote>这是一个大段引自他出内容</blockquote>

<blockquote>这是另一个大段引自他出内容</blockquote>

解释:<blockquote>元素实际作用除了和<p>元素一样,有段落空隙的功能,还包含

了首尾缩进的功能。语义上表示,大段的引用他出的内容。

4.<pre>展现格式化内容(pre可以理解空隙,就是编辑文档中空隙是怎么设置的,到浏览器也是一样的)

<pre>

#####

#####

#####

#####

#####

</pre>

解释:<pre>元素实际作用就是编辑器怎么排版的,原封不动的展现出来。当然,这种

只适合简单的排版,复杂的排版就无法满足要求了。

5.<hr>添加分隔

<hr>

解释:<hr>元素实际作用就是添加一条分割线,意图呈现上下文主题的分割。

6.<ul><li>添加无序列表

<ul>

<li>张三</li>

<li>李四</li>

<li>王五</li>

<li>马六</li>

</ul>

解释:<ul>元素表示无序列表,而<li>元素则是内部的列表项。

7.<ol><li>添加有序列表

<ol>

<li>张三</li>

<li>李四</li>

<li>王五</li>

<li>马六</li>

</ol>

解释:<ol>元素表示有序列表,而<li>元素则是内部的列表项。<ol>元素目前支持三

种属性。

<li  value="7">王五</li>

ol的start跟li的value值只能用一个,如果两个一起用会显示li里面的设置

8.<dl><dt><dd>生成说明列表

<dl>

<dt>这是一份文件</dt>

<dd>这里是这份文件的详细内容  1</dd>

<dd>这里是这份文件的详细内容  2</dd>

</dl>

解释:这三个元素是一个整体,但<dt>或<dd>并非都必须出现。

9.<figure><figcaption>使用插图

<figure>

<figcaption>这是一张图</figcaption>

<img  src="img.png">

</figure>

解释:这两个元素一般用于图片的布局。

六、表格元素

一.表格元素总汇

表格的基本构成最少需要三个元素:<table>、<tr>、<td>,其他的一些作为可选辅

助存在。

二.构建表格解析  

1.<table><tr><td>构建基础表格

<table  border="1">

<tr>

<td>张三</td>

<td>男</td>

<td>未婚</td>

</tr>

<tr>

<td>李四</td>

<td>女</td>

<td>已婚</td>

</tr>

</table>

解释:<table>元素表示一个表格的声明,<tr>元素表示表格的一行,<td>元素表示

一个单元格。默认情况下表格是没有边框的,所以,在<table>元素增加一个 border属性,

设置为 1即可显示边框。

2.<th>为表格添加标题单元格

<table  border="1"  style="width:300px;">

<tr>

<th>姓名</th>

<th>性别</th>

<th>婚姻</th>

</tr>

<tr>

<td>张三</td>

<td>男</td>

<td>未婚</td>

</tr>

<tr>

<td>李四</td>

<td>女</td>

<td>已婚</td>

</tr>

</table>

解释:<th>元素主要是添加标题行的单元格,实际作用就是将内部文字居中且加粗。

这里使用了一个通用属性 style,主要用于 CSS样式设置,以后会涉及到。<th><td>均属

于单元格,包含两个合并属性:colspan、rowspan等。

3.<thead>添加表头(不管里面的tr放在什么地方,都会显示在表头部分)

<thead>

<tr>

<th>姓名</th>

<th>性别</th>

<th>婚姻</th>

</tr>

</thead>

解释:<thead>元素就是限制和规范了表格的表头部分。尤其是以后动态生成表头,它

的位置是不固定的,使用此元素可以限定在开头位置。

4.<tfoot>添加表脚

<tfoot>

<tr>

<td  colspan="3">统计:共两名</td>

</tr>

</tfoot>

解释:<tfoot>元素为表格生成表脚,限制在表格的底部。

5.<tbody>添加表主体

<tbody>

<tr>

<td>张三</td>

<td>男</td>

<td>未婚</td>

</tr>

<tr>

<td>李四</td>

<td>女</td>

<td>已婚</td>

</tr>

</tbody>

解释:<tbody>元素主要是包含住非表头表脚的主体部分,有助于表格格式的清晰,更

加有助于后续 CSS和  JavaScript的控制。

6.<caption>添加表格标题

<caption>这是一个人物表</caption>

解释:<caption>元素给表格添加一个标题。

<table border="1">

  <caption>Monthly savings</caption>

  <tr>

    <th>Month</th>

    <th>Savings</th>

  </tr>

  <tr>

    <td>January</td>

    <td>$100</td>

  </tr>

</table>

7.<colgroup>设置列

<colgroup  span="2"  style="background:red;">

解释:<colgroup>元素是为了处理某个列,span属性定义处理哪些列。1表示第一列,

2表示前两列。如果要单独设置第二列,那么需要声明两个,先处理第一个,将列点移入第

二位,再处理第二个即可。

8.<col>更灵活的设置列

<colgroup>

<col>

<col  style="background:red;"  span="1">

</colgroup>

解释:<col>元素表示单独一列,一个表示一列,控制更加灵活。如果设置了 span则,

控制多列。

              <table border="1">

                  <colgroup>

                        <col span="2" style="background-color:red">

                        <col style="background-color:yellow">

                  </colgroup>

                  <tr>

                        <th>ISBN</th>

                        <th>Title</th>

                        <th>Price</th>

                  </tr>

                  <tr>

                        <td>3476896</td>

                        <td>My first HTML</td>

                        <td>$53</td>

                  </tr>

                  <tr>

                        <td>5869207</td>

                        <td>My first CSS</td>

                        <td>$49</td>

                  </tr>

            </table>

合并单元格:

先确定是合并行还是合并列

然后根据先上后下,先左后右找到对应的合并单元格

最后将多余的单元格删除

七、文档元素

一.文档元素总汇

文档元素基本没有什么实际作用效果,主要目的是在页面布局时区分各个主题和概念。

二.文档元素解析

文档元素的大部分标签,是没有任何效果的,完全是为了配合语义使用,以强调它的结

构性。只有在后面的章节学习 CSS,配合使用才能起到布局和样式的效果。

1.<header>表示首部 

<header>

这里部分一般是页面头部,包括:LOGO、标题、导航等内容

</header>

解释:<header>元素主要设置页面的标头部分。下面写的内容在浏览器上会自定换行。

2.<footer>表示尾部

<footer>

这里是页面的尾部,一般包括:版权声明、友情链接等内容

</footer>

解释:<footer>元素主要设置页面的尾部。

<footer>

  <p>Posted by: W3School</p>

  <p>Contact information: <a href="mailto:someone@example.com">someone@example.com</a>.</p>

</footer>

3.<h1>~<h6>添加标题

<h1>标题部分</h1>

<h4>小标题部分</h4>

解释:<h1>~<h6>实际作用就是加粗并改变字体大小。用于各种标题文档。

4.<hgroup>组合标题

<hgroup>

<h1>标题部分</h1>

<h4>小标题部分</h4>

</hgroup>

解释:<hgroup>元素的作用就是当多个标题出现,干扰到一对或多个本身需要整合的

标题,这是使用此元素包含群组。字体大小会逐渐变小。后面可以用css通过hgroup 来控制。

<hgroup>

<h1>Welcome to my WWF</h1>

<h2>For a living planet</h2>

</hgroup>

5.<section>文档主题

<section>

这里一般是存放文档主题内容。

</section>

解释:<section>元素的作用是定义一个文档的主题内容。

<section>

<h1>PRC</h1>

<p>The People's Republic of China was born in 1949...</p>

</section>

6.<nav>添加导航

<nav>这里存放文档的导航</nav>

解释:<nav>元素给文档页面添加一个导航。

<nav>

<a href="index.asp">Home</a>

<a href="html5_meter.asp">Previous</a>

<a href="html5_noscript.asp">Next</a>

</nav>

7.<article>添加一个独立成篇的文档

<article>

<header>

<nav></nav>

</header>

<section></section>

<footer></footer>

</article>

解释:<article>元素表示独立成篇的文档,里面可以包含头、尾、主题等一系列内容。

在比较大的页面中会使用到,比如一片博文的列表,每篇博文,都有自己的头、尾、主题等

内容。和此相似的还有论坛的帖子、用户的评论、新闻等。

8.<aside>生成注释栏

<aside>这是是一个注释</aside>

解释:<aside>元素专门为某一段内容进行注释使用。

<p>Me and my family visited The Epcot center this summer.</p>

<aside>

<h4>Epcot Center</h4>

The Epcot Center is a theme park in Disney World, Florida.

</aside>

9.<address>表示文档或 article元素的联系信息。

<address>联系信息</address>

解释:如果是在<body>元素下时,表示整个文档的联系信息。如果是在<article>元

素下时,表示其下的联系信息。

<address>

Written by <a href="mailto:webmaster@example.com">Donald Duck</a>.<br>

Visit us at:<br>

Example.com<br>

Box 564, Disneyland<br>

USA

</address>

10.<details>元素生成详情区域、<summary>元素在其内部生成说明标签

解释:由于大多数主流浏览器尚未支持,暂略。

八、嵌入元素

一.嵌入元素总汇

这里所列出的元素,并非本节课全部涉及到,比如音频 audio、视频 video、以及动态

图像 canvas和媒体资源  source、track等会在后面章节或季度讲解。

二.嵌入元素解析

1.<img>嵌入图像

<img  src="img.png">

解释:<img>元素主要是插入一张外部的图片,那么图片的路径问题和超链接一致。

ismap:点击区域可以获取到点击的坐标,提交出去。

<a  href="index.html">

<img  src="img.png"  width="339"  height="229"  alt="风景图" ismap>

</a>

2.<map>创建分区响应图,跟图像合用的,相当于在图像创建热点区域,点击这些热点区域做些别的操作

<img src="img.png" alt="风景图" width="339" height="229" usemap="#Map">

<map  name="Map">

<area  shape="rect"  coords="31,28,112,100"

href="http://www.baidu.com"  target="_blank"  alt="方形">

<area  shape="circle"  coords="187,142,47"

href="http://www.google.com"  target="_blank"  alt="圆形">

<area  shape="poly"  coords="287,26,240,66,308,112"

href="http://www.soso.com"  target="_blank"  alt="多边形">

</map>

解释:通过图片中的热点进行超链接,这里我们采用 Dreamweaver进行操作生成的。

3.<iframe>嵌入另一个文档

<a  href="index.html"  target="in">index</a>

<a  href="http://www.baidu.com"  target="in">百度</a>

<iframe  src="http://www.ycku.com"  width="600"  height="500"

name="in"></iframe>

解释:<iframe>表示内嵌一个 HTML文档。其下的  src属性表示初始化时显示的页面,

width和  height表示内嵌文档的长度和高度,name表示用于  target的名称。

4.<embed>嵌入插件内容

<embed

src="http://www.tudou.com/v/i4ZZvFwfluI/&bid=05&rpid=50797543&resourceI

d=50797543_05_05_99/v.swf"  type="application/x-shockwave-flash"

width="480"  height="400"></embed>

解释:<embed>元素是扩展浏览器的功能,大部分用于添加对插件的支持。这里添加了

一个土豆网的 flash视频。type类型表示被插入内容的类型,这里不列出所有,后面如果

遇到其他类型的文件,再继续探讨;width和  height表示宽高;src表示文件路径。

5.<object>和<param>元素

解释:<object>元素和<embed>一样,只不过 object是  html4的标准,而 embed是

html5的标准。而  object不但可以嵌入 flash,还可以嵌入图片等其他内容。由于图片、

音频、视频、插件都有相应标签元素代替,我们这里暂时不对其详细讲解。

6.<progress>显示进度

<progress  value="30"  max="100"></progress>

解释:<progress>元素可以显示一个进度条,一般通过 JS控制内部的值。IE9以及更

低版本不支持此元素。

7.<meter>显示范围里的值

<meter  value="90"  min="10"  max="100"  low="40"  high="80"

optimum="60"></meter>

解释:<meter>元素显示某个范围内的值。其下的属性包含:min和  max表示范围边界,

low表示小于它的值过低,high表示大于它的值过高,optimum表示最佳值,但不出现效

果。IE浏览器不支持此元素。

九、音频和视频

一.音频和视频概述

首先,我们要理解两个概念:容器(container)和 编解码器(codec)。

1.视频容器

音频文件或视频文件,都只是一个容器文件。视频文件包含了音频轨道、视频轨道和其

他一些元数据。视频播放时,音频轨道和视频轨道是绑定在一起的。元数据包含了视频的封

面、标题、子标题、字幕等相关信息。主流视频容器支持的格式为:.avi、.flv、.mp4、.mkv、

.ogg、.webm。

2.编解码器

音频和视频编码/解码是一组算法,用来对一段特定音频或视频进行解码和编码,以便

音频和视频能够播放。原始的媒体文件体积非常巨大,如果不对其进行编码,那么数据量是

非常惊人的,在互联网上传播则要耗费无法忍受的时间;如果不对其进行解码,就无法将编

码后的数据重组为原始的媒体数据。主流的音频编解码器:AAC、MPEG-3、Ogg  Voribs,

视频编解码器:H.264、VP8、Ogg  Theora。

3.浏览器支持情况

起初,HTML5规范本来打算指定编解码器,但实施起来极为困难。部分厂商已有自己的

标准,不愿实现标准;而有一些编解码器受专利保护,需要支付昂贵费用。最终放弃了统一

规范的要求,导致各个浏览器实现自己的标准。

除了上面三款浏览器,还有 Safari5+支持 MPEG-4,Opera11支持  WebM和  OGG,通过

这组数据,只要备好 MP4和  OGG格式的即可,但对于新的高清标准 WebM,当然是非常必要

的。因为 WebM不但清晰度高,而且免费,不受限制许可的使用源码和专利权。

目前 Chrome浏览器,为了推广 WebM格式的视频。声称未来将放弃  H.264编码的视频,

所以有可能在以后的版本中无法播放 MP4的视频。当然,目前演示的版本还是支持的。

二.video视频元素

以往的视频播放,需要借助 Flash插件才可以实现。但 Flash插件的不稳定性经常让

浏览器导致崩溃,因此很多浏览器或系统厂商开始抛弃它。而取代它的正是 HTML5的   video

元素。

1.嵌入一个 WebM视频

<video  src="test.webm"  width="800"  height="600"></video>

解释:<video>插入一个视频,主流的视频为.webm,.mp4,.ogg等。src表示资源

URL;width表示宽度;height表示高度。

2.附加一些属性

<video src="test.webm"  width="800" height="600" autoplay  controls loop

muted></video>

解释:autoplay表示自动开始播放;  controls表示显示播放控件;  loop表示循环播放;   muted表示静音。

3.预加载设置

<video src="http://li.cc/test.webm"  width="800"  height="600" controls

preload="none"></video>

解释:preload属性有三个值:  none表示播放器什么都不加载;  metadata表示播放之前只能加载元数据(宽高、第一帧画面等信息);

    auto表示请求浏览器尽快下载整个视频。

4.使用预览图

<video src="http://li.cc/test.webm"  width="800"  height="600" controls

poster="img.png"></video>

解释:poster属性表示在视频的第一帧,做一张预览图。

5.兼容多个浏览器

<video  width="800"  height="600"  controls  poster="img.png">

<source  src="test.webm">

<source  src="test.mp4">

<source  src="test.ogg">

<object>这里引入 flash播放器实现  IE9以下,但没必要了</object>

</video>

解释:通过<source>元素引入多种格式的视频,让更多的浏览器保持兼容。

二.audio音频元素

和 video元素一样,audio元素用于嵌入音频内容,而音频元素的属性和视频元素类

似。音频的支持度和视频类似,使用<source>元素引入多种格式兼容即可。主流的音频格

式有:.mp3,.m4a,.ogg,.wav。

1.嵌入一个音频

<audio  src="test.mp3"  controls  autoplay></audio>

解释:和嵌入视频一个道理。

2.兼容多个浏览器

<audio  controls>

<source  src="test.mp3">

<source  src="test.m4a">

<source  src="test.wav">

</audio>

解释:略。

PS:更多设计到 API的  JavaScript控制,将在以后的基于 JavaScript基础后讲解。

十、表单元素

一.表单元素总汇

在 HTML5的表单中,提供了各种可供用户输入的表单控件。

二.表单元素解析

1.<form>定义表单,本身具有提交功能

<form  method="post"  action="http://www.haosou.com/">

<button>提交</button>

</form>

解释:<form>元素主要是定义本身是一组表单。

//使用 get提交数据

method="get"

//丧失自动提示功能

autocomplete="off"

//使用_blank新建目标

target="_blank" 

2.<input>表示用户输入数据

<input  name="user">

解释:<input>元素默认情况会出现一个单行文本框,有五个属性。

//聚焦光标

<input  name="user"  autofocus>

//禁用  input

<input  name="user"  disabled>

//禁止自动完成

<input  name="user"  autocomplete="off">

//表单外的  input

<form  method="get"  id="register">

...

</form>

<input  name="email"  form="register">

3.<label>添加说明标签

<p><label for="user">用户名:<input  id="user" name="user"></label></p>

<p><label>用户名:<input  id="user" name="user"></label></p>

<p><label for="user"></label>  用户名:<input  id="user" name="user"></p>

解释:<label>元素可以关联 input,让用户体验更好。且更加容易设置 CSS样式。

4.<fieldset>对表单进行编组 

<fieldset>...</fieldset>

解释:<fieldset>元素可以将一些表单元素组织在一起,形成一个整体。

5.<legend>添加分组说明标签

<fieldset>

<legend>注册表单</legend>

</fieldset>

解释:<legend>元素给分组加上一个标题。

6.<button>添加按钮

<button  type="submit"></button>

解释:<button>元素添加一个按钮,type属性有如下几个值:

//提交表单

<button  type="submit">提交</button>

//重置表单

<button  type="reset">重置</button>

//普通按钮

<button  type="button">按钮</button>

对于 type属性为  submit时,按钮还会提供额外的属性。

//表单外关联提交

<button  type="submit"  form="register">提交</button>

三.type属性总汇

input元素可以用来生成一个供用户输入数据的简单文本框。在默认的情况下,什么样

的数据均可以输入。而通过不同的属性值,可以限制输入的内容。

四.input元素解析

1.type为  text值时

<input  type="text">

解释:当 type值为  text时,呈现的就是一个可以输入任意字符的文本框,这也是默

认行为。并且,还提供了一些额外的属性。

//设置文本框长度

<input  type="text"  size="50">

//设置文本框输入最大字符长度

<input  type="text"  maxlength="10">

//设置文本框的初始值

<input  type="text"  value="初始值">

//设置文本框输入提示

<input  type="text"  placeholder="请输入内容">

//设置文本提供的建议值

<input  list="footlist">

<datalist  id="footlist">

<option  value="苹果">苹果</option>

<option  value="桔子">桔子</option>

<option  value="香蕉"  label="香蕉">

<option  value="梨子">

</datalist>

//设置文本框内容为只读,可以提交数据

<input  type="text"  readonly>

//设置文本框内容不可用,不可以提交数据

<input  type="text"  disabled>

2.type为  password值时

<input  type="password">

解释:当 type值为  password时,一般用于密码框的输入,所有的字符都会显示星号。

密码框也有一些额外属性。

这里除了正则和验证需要放在下一节,其余和文本框一致。

3.type为  search

<input  type="search">

解释:和文本框一致,在除 Firefox浏览器的其他现代浏览器,会显示一个叉来取消

搜索内容。额外属性也和 text一致。

4.type为  number、range时

<input  type="number">

<input  type="range">

解释:只限输入数字的文本框,不同浏览器可能显示方式不同。生成一个数值范围文本

框,只是样式是拖动式。额外属性如下:

//范围和步长

<input  type="number"  step="2"  min="10"  max="100">

5.type为  date系列时

<input  type="date">

<input  type="month">

<input  type="time">

<input  type="week">

<input  type="datetime">

<input  type="datetime-local">

解释:实现文本框可以获取日期和时间的值,但支持的浏览器不完整。我们测试  Chrome

和 Opera支持,其他浏览器尚未支持。所以,在获取日期和时间,目前还是推荐使用   jQuery

等前端库来实现日历功能。额外属性和 number一致。

6.type为  color时

<input  type="color">

解释:实现文本框获取颜色的功能,最新的现代浏览器测试后 IE不支持,其余的都能

显示一个颜色对话框提供选择。

7.type为  checkbox、radio时

音乐  <input  type="checkbox">

体育  <input  type="checkbox">

<input  type="radio"  name="sex"  value="男">男

<input  type="radio"  name="sex"  value="女">女

解释:生成一个获取布尔值的复选框或固定选项的单选框。额外属性如下:

//默认勾选,默认值为  1

<input  type="checkbox"  name="music"  checked  value="1">

8.type为  submit、reset和 button时

<input  type="submit">

解释:生成一个按钮,三种模式:提交、重置和一般按钮,和<button>元素相同。

如果是 submit时,还提供了和<button>元素一样的额外属性:formaction、

formenctype、formmethod、formtarget和  formnovalidate。

9.type为  image时

<input  type="image"  src="img.png">

解释:生成一个图片按钮,点击图片就实现提交功能,并且传送了分区响应数据。图片

按钮也提供了一些额外属性。

10.type为  email、tel、url时

<input  type="email">

<input  type="tel">

<input  type="url">

解释:email为电子邮件格式、tel为电话格式、url为网址格式。额外属性和    text

一致。但对于这几种类型,浏览器支持是不同的。email支持比较好,现在浏览器都支持格

式验证;tel基本不支持;url支持一般,部分浏览器只要检测到   http://就能通过。

11.type为  hidden时

<input  type="hidden">

解释:生成一个隐藏控件,一般用于表单提交时关联主键 ID提交,而这个数据作为隐

藏存在。

12.type为  file时

<input  type="file">

解释:生成一个文件上传控件,用于文件的上传。额外提供了一些属性:

accept="image/gif,  image/jpeg,  image/png"

五.其他元素

表单元素还剩下几个元素没有讲解,包括下拉框列表 select、多行文本框 textarea、

和 output计算结果元素。

1.生成下拉列表

<select  name="fruit">

<option  value="1">苹果</option>

<option  value="2">橘子</option>

<option  value="3">香蕉</option>

</select>

解释:<select>下拉列表元素至少包含一个<option>子元素,才能形成有效的选项列

表。<select>元素包含两个子元素<option>项目元素和<optgroup>分组元素,还包含了

一些额外属性。

//设置高度并实现多选

<select  name="fruit"  size="30"  multiple>

//默认首选

<option  value="2"  selected>橘子</option>

//使用 optgroup进行分组,label为分组名称,disabled可以禁用分组

<optgroup  label="水果类">

<option  value="1">苹果</option>

<option  value="2"  selected>橘子</option>

<option  value="3"  label="香蕉">香蕉</option>

</optgroup>

2.多行文本框

<textarea  name="content">请留下您的建议!  </textarea>

解释:生成一个可变更大小的多行文本框。属性如下:

//设置行高和列宽,设置插入换行符

<textarea  name="content"  rows="20"  cols="30"  wrap="hard"></textarea>

3.计算结果

<form  οninput="res.value  =  num1.valueAsNumber  * num2.valueAsNumber">

<input  type="number"  id="num1"> x  <input  type="number"  id="num2">

<output  for="num1  num2"  name="res">

</form>

解释:output就是计算两个文本框之间的值,其实就是内嵌了  JavaScript功能。

六.输入验证

HTML5对表单提供了输入验证检查方式,但这种验证还是比较简陋的,并且不同的浏览

器支持的成熟度还不同。在大部分情况下,可能还是要借助 jQuery等前端库来实现丰富的

验证功能和显示效果。

//必须填写一个值

<input  type="text"  required>

//限定在某一个范围内

<input  type="number"  min="10"  max="100">

//使用正则表达式

<input  type="text"  placeholder="请输入区号+座机"  required

pattern="^[\d]{2,4}\-[\d]{6,8}$">

//禁止表单验证

<form  action="http://li.cc"  novalidate>

十一、全局属性和其他

一.实体

HTML实体就是将有特殊意义的字符通过实体代码显示出来。

二.元数据

<meta>元素可以定义文档中的各种元数据,而且一个 HTML页面可以包含多个<meta>

元素。

1.指定名/值元数据对

<meta  name="author"  content="bnbbs">

<meta  name="description"  content="这是一个 HTML5页面">

<meta  name="keywords"  content="html5,css3,响应式">

<meta  name="generator"  content="sublime  text  3">

2.声明字符编码

<meta  charset="utf-8">

3.模拟 HTTP标头字段

//5秒跳转到指定   URL

<meta  http-equiv="refresh"  content="5;http://li.cc">

//另一种声明字符编码

<meta  http-equiv="content-type"  content="text/html  charset=utf-8">

三.全局属性

在此之前,我们涉及到的元素都讲解了它的局部数据,当然也知道一些全局属性,比如

id。全局属性是所有元素共有的行为,HTML5还提供了一些其他的全局属性。

1.id属性

<p  id="abc">段落</p>

解释:id属性给元素分配一个唯一标识符。这种标识符通常用来给  CSS和  JavaScript

调用选择元素。一个页面只能出现一次同一个 id名称。

2.class属性

<p  class="abc">段落</p>

<p  class="abc">段落</p>

<p  class="abc">段落</p>

解释:class属性用来给元素归类。通过是文档中某一个或多个元素同时设置  CSS样

式。

3.accesskey属性

<input  type="text"  name="user"  accesskey="n">

解释:快捷键操作,windows下  alt+指定键,前提是浏览器 alt并不冲突。

4.contenteditable属性

<p  contenteditable="true">我可以修改吗</p>

解释:让文本处于可编辑状态,设置 true则可以编辑,false则不可编辑。或者直接

设置属性。

5.dir属性

<p  dir="rtl">文字到右边了</p>

解释:让文本从左到右(ltr),还是从右到左(rtl)。

6.hidden属性

<p  hidden>文字到右边了</p>

解释:隐藏元素。

7.lang属性

<p  lang="en">HTML5</p>

解释:可以局部设置语言。

8.title属性

<p  title="HTML5教程">HTML5</p>

解释:对元素的内容进行额外的提示。

9.tabindex属性

<input  type="text"  name="user"  tabindex="2">

<input  type="text"  name="user"  tabindex="1">

解释:表单中按下 tab键,实现获取焦点的顺序。如果是-1,则不会被选中。

10.style属性

<p  style="color:red;">CSS样式</p>

解释:设置元素行内 CSS样式。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值