HTML5新手基础教程
HTML5教程
什么是HTML5?
在这里我不说一些特别难懂的语言,我这里简单的解释一下,如果你学过HTML,那么就是HTML4,HTML5是针对现有的版本进行了一些丰富,把一些原先常用的标签进行了统一,还添加了一些以前没有的新标签来满足更复杂的功能,像原先网页上面的音乐播放器,现在都不需要通过flash插件来实现,仅仅通过HTML5编写程序来实现,可以说HTML5的出现是一个很大的进步。
给大家介绍一个HTML5学习的技术社区:HTML5伴侣
HTML5现在的局限?
最大的一个局限就是还没有完全支持,支持HTML5的现代浏览器:
但是还有些浏览器不支持,比如IE9之前的版本。
有些东西需要HTML5来实现,但是不能保证用户用的浏览器都支持HTML5,所以有些功能需要保证兼容性,所以这也是限制HTML5的一个原因。
另外的一个因素就是HTML5在移动端的表现没有想象中优越,有很多的开发者在移动端做了很多尝试,尤其是在移动端开发游戏,在动画效果的实现上面,流畅度没有得到很好地的保证,不过随着移动设备的硬件越来越快,所以在以后HTML5在移动端的劣势会被掩盖,当然并不是所有的移动端设备表现的都不好,HTML5在IOS平台下的表现就很不错,已经可以成为企业开发的一个选择,相反android就不尽人意。
HTML5的优势
HTML5最好的一个优势就是跨平台,如果你是开发者,你只要写一套程序就可以在任何地方运行,PC,移动端都可以,这个大大的节约了开发成本。
另外一个优点就是标准的统一,开发人员不需要再头疼浏览器的兼容性,不过在这之前得保证浏览器支持HTML5。
最后一个优点是站在用户的角度,在移动端你想要用一个APP,你得去下载,每次APP更新或者改版,用户很反感,用HTML5开发的只需要借助移动端浏览器打开,不需要用户下载,打开就可以直接用,用户头疼的更新问题也不用担心了。
以上都是我的废话,希望您不要对此感到反感,接下来我就正式来介绍HTML5。
HTML5新特性:
1.添加了canvas元素,这个元素可以帮助我们实现更炫更棒的动画效果,HTML5游戏就是通过这个canvas来实现的场景的渲染。
2.媒介元素,如video和audio元素。
3.本地离线存储的支持。
4.原先的标签更加分散和清晰,比如article,footer,header,nav等等。
5.新的表单元素属性,比如data,time,Email,url,search等。
HTML5视频
很多视频的网站都是通过flash插件来播放视频的,但是HTML5提供了对视频播放的支持。
Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件
MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件
WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件
标签使用
1
2
12
13 浏览器不支持html5视频功能
14
IE9一下不支持video,IE9支持了MPEG4的video元素。
Video的属性选择
HTML5音频
HTML5支持音频(音乐)的标准,通过audio元素。
音频格式:
要确保适用于 Safari 浏览器,音频文件必须是 MP3 或 Wav 类型。
标签使用:
Your browser does not support the audio tag.
IE8 不支持 audio 元素。在 IE 9 中,将提供对 audio 元素的支持。
HTML5 Canvas
Canvas元素可以实现绘制图形动画。
Canvas可以说是HTML5里面最重要的一个标签了,这个标签的出现让游戏开发更加容易,不过Canvas需要配合JavaScript使用。
元素创建
规定元素的 id、宽度和高度:
这个地方为什么要定义id属性呢?如果你对JS的DOM编程有一定了解的话,你就知道通过ID属性可以获取一个元素对象,从而可以通过JS来对元素进行操作。
如果你对DOM不熟悉的话,建议你先去看下相关的学习资料。
这里给你一个DOM学习的电子书下载链接:
JavaScript控制Canvas
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
JavaScript 使用 id 来寻找 canvas 元素:
var c=document.getElementById("myCanvas");
然后,创建 context 对象:
var cxt=c.getContext("2d");
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形:
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。
上面的 fillRect 方法拥有参数 (0,0,150,75)。
意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。
如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。
下面我在 canvas 元素上进行绘画的更多实例:
实例 - 线条
通过指定从何处开始,在何处结束,来绘制一条线:
JavaScript 代码:
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.moveTo(10,10);
cxt.lineTo(150,50);
cxt.lineTo(10,50);
cxt.stroke();
canvas 元素:
Your browser does not support the canvas element.
实例 - 圆形
通过规定尺寸、颜色和位置,来绘制一个圆:
JavaScript 代码:
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();
canvas 元素:
Your browser does not support the canvas element.
实例 - 渐变
使用您指定的颜色来绘制渐变背景:
JavaScript 代码:
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var grd=cxt.createLinearGradient(0,0,175,50);
grd.addColorStop(0,"#FF0000");
grd.addColorStop(1,"#00FF00");
cxt.fillStyle=grd;
cxt.fillRect(0,0,175,50);
canvas 元素:
Your browser does not support the canvas element.
实例 - 图像
把一幅图像放置到画布上:
JavaScript 代码:
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var img=new Image()
img.src="flower.png"
cxt.drawImage(img,0,0);
canvas 元素:
Your browser does not support the canvas element.
你看我canvas相比较前几个标签来说,解释说明举例明显更多,这也说明canvas标签的重要性,希望你能好好学习这个标签。
HTML5 Web存储
在客户端存储数据
HTML5 提供了两种在客户端存储数据的新方法:
localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。
对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。
HTML5 使用 JavaScript 来存储和访问数据。
localStorage 方法
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
如何创建和访问 localStorage:
实例
localStorage.lastname="Smith";
document.write(localStorage.lastname);
sessionStorage 方法
sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
如何创建并访问一个 sessionStorage:
实例
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
HTML5 Input类型
HTML5 拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。
本章全面介绍这些新的输入类型:
1.email
2.url
3.number
4.range
5.Date pickers (date, month, week, time, datetime, datetime-local)
6.search
7.color
注释:Opera 对新的输入类型的支持最好。不过您已经可以在所有主流的浏览器中使用它们了。即使不被支持,仍然可以显示为常规的文本域。
Input 类型 - email
email 类型用于应该包含 e-mail 地址的输入域。
在提交表单时,会自动验证 email 域的值。
实例
E-mail:
提示:iPhone 中的 Safari 浏览器支持 email 输入类型,并通过改变触摸屏键盘来配合它(添加 @ 和 .com 选项)。
Input 类型 - url
url 类型用于应该包含 URL 地址的输入域。
在提交表单时,会自动验证 url 域的值。
实例
Homepage:
提示:iPhone 中的 Safari 浏览器支持 url 输入类型,并通过改变触摸屏键盘来配合它(添加 .com 选项)。
Input 类型 - number
number 类型用于应该包含数值的输入域。
您还能够设定对所接受的数字的限定:
实例
Points:
请使用下面的属性来规定对数字类型的限定:
属性
值
描述
max
number
规定允许的最大值
min
number
规定允许的最小值
step
number
规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value
number
规定默认值
提示:iPhone 中的 Safari 浏览器支持 number 输入类型,并通过改变触摸屏键盘来配合它(显示数字)。
Input 类型 - range
range 类型用于应该包含一定范围内数字值的输入域。
range 类型显示为滑动条。
您还能够设定对所接受的数字的限定:
实例
请使用下面的属性来规定对数字类型的限定:
属性
值
描述
max
number
规定允许的最大值
min
number
规定允许的最小值
step
number
规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value
number
规定默认值
Input 类型 - Date Pickers(日期选择器)
HTML5 拥有多个可供选取日期和时间的新输入类型:
15 date - 选取日、月、年
16 month - 选取月、年
17 week - 选取周和年
18 time - 选取时间(小时和分钟)
19 datetime - 选取时间、日、月、年(UTC 时间)
20 datetime-local - 选取时间、日、月、年(本地时间)
下面的例子允许您从日历中选取一个日期:
实例
Date:
Input里面的类型新增的属性虽然多了一些,但是大多都很简单,和原先的text,password都是一样的道理。
HTML5表单元素
HTML5 拥有若干涉及表单的元素和属性。
datalist 元素
datalist 元素规定输入域的选项列表。
列表是通过 datalist 内的 option 元素创建的。
如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist 的 id:
实例
Webpage:
提示:option 元素永远都要设置 value 属性。
keygen 元素
keygen 元素的作用是提供一种验证用户的可靠方法。
keygen 元素是密钥对生成器(key-pair generator)。当提交表单时,会生成两个键,一个是私钥,一个公钥。
私钥(private key)存储于客户端,公钥(public key)则被发送到服务器。公钥可用于之后验证用户的客户端证书(client certificate)。
目前,浏览器对此元素的糟糕的支持度不足以使其成为一种有用的安全标准。
实例
Username:
Encryption:
output 元素
output 元素用于不同类型的输出,比如计算或脚本输出:
实例
HTML5表单属性
本章讲解涉及
和 元素的新属性。
新的 form 属性:
autocomplete
novalidate
新的 input 属性:
autocomplete
autofocus
form
form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
height 和 width
list
min, max 和 step
multiple
pattern (regexp)
placeholder
Required
autocomplete 属性
autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。
注释:autocomplete 适用于 标签,以及以下类型的 标签:text, search, url, telephone, email, password, datepickers, range 以及 color。
当用户在自动完成域中开始输入时,浏览器应该在该域中显示填写的选项:
实例
First name:
Last name:
E-mail:
注释:在某些浏览器中,您可能需要启用自动完成功能,以使该属性生效。
autofocus 属性
autofocus 属性规定在页面加载时,域自动地获得焦点。
注释:autofocus 属性适用于所有 标签的类型。
实例
User name:
form 属性
form 属性规定输入域所属的一个或多个表单。
注释:form 属性适用于所有 标签的类型。
form 属性必须引用所属表单的 id:
实例
First name:
Last name:
注释:如需引用一个以上的表单,请使用空格分隔的列表。
表单重写属性
表单重写属性(form override attributes)允许您重写 form 元素的某些属性设定。
表单重写属性有:
21 formaction - 重写表单的 action 属性
22 formenctype - 重写表单的 enctype 属性
23 formmethod - 重写表单的 method 属性
24 formnovalidate - 重写表单的 novalidate 属性
25 formtarget - 重写表单的 target 属性
注释:表单重写属性适用于以下类型的 标签:submit 和 image。
实例
E-mail:
注释:这些属性对于创建不同的提交按钮很有帮助。
height 和 width 属性
height 和 width 属性规定用于 image 类型的 input 标签的图像高度和宽度。
注释:height 和 width 属性只适用于 image 类型的 标签。
实例
list 属性
list 属性规定输入域的 datalist。datalist 是输入域的选项列表。
注释:list 属性适用于以下类型的 标签:text, search, url, telephone, email, date pickers, number, range 以及 color。
实例
Webpage:
min、max 和 step 属性
min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。
max 属性规定输入域所允许的最大值。
min 属性规定输入域所允许的最小值。
step 属性为输入域规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)。
注释:min、max 和 step 属性适用于以下类型的 标签:date pickers、number 以及 range。
下面的例子显示一个数字域,该域接受介于 0 到 10 之间的值,且步进为 3(即合法的值为 0、3、6 和 9):
实例
Points:
multiple 属性
multiple 属性规定输入域中可选择多个值。
注释:multiple 属性适用于以下类型的 标签:email 和 file。
实例
Select images:
novalidate 属性
novalidate 属性规定在提交表单时不应该验证 form 或 input 域。
注释:novalidate 属性适用于
以及以下类型的 标签:text, search, url, telephone, email, password, date pickers, range 以及 color.
实例
E-mail:
pattern 属性
pattern 属性规定用于验证 input 域的模式(pattern)。
模式(pattern) 是正则表达式。您可以在我们的 JavaScript 教程中学习到有关正则表达式的内容。
注释:pattern 属性适用于以下类型的 标签:text, search, url, telephone, email 以及 password。
下面的例子显示了一个只能包含三个字母的文本域(不含数字及特殊字符):
实例
Country code:
pattern="[A-z]{3}" title="Three letter country code" />
placeholder 属性
placeholder 属性提供一种提示(hint),描述输入域所期待的值。
注释:placeholder 属性适用于以下类型的 标签:text, search, url, telephone, email 以及 password。
提示(hint)会在输入域为空时显示出现,会在输入域获得焦点时消失:
实例
required 属性
required 属性规定必须在提交之前填写输入域(不能为空)。
注释:required 属性适用于以下类型的 标签:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。
实例
Name:
这份简易的HTML5教程是为了新手准备,HTML5还有很大其他的更高级的东西,我在这里没有介绍,不过随着学习的深入,以后你肯定会接触到的,我在最后给大家展示一些HTML5开发的实例,包括游戏,应用以及各种demo。
HTML5开发的驴子跳游戏:
HTML5开发游戏场景:
HTML5和JS结合开发的植物大战僵尸:
HTML5的传奇还在继续,你现在是不是充满了热情,摩拳擦掌的想要试试HTML5具有什么样的魅力?那就快来学习吧,希望这份教程在你HTML5的启蒙道路有所帮助。