化繁为简:
口号:简单之上,尽可能简化
改进:
a. 以浏览器原生能力替代复杂的JavaScript代码
b. 新简化的DOCTYPE
c. 新简化的字符集声明
d. 简单而强大的HTML5 API
通用访问:
可访问性:处于对残障用户的考虑
媒体中立:如果可能的话,HTML5的功能在所有不同的设备和平台上应该都能正常运行
支持所有语种:例如,新<ruby>元素支持ruby注释
无插件范式
过去很多功能只能通过插件或者复杂的hack(本地绘图API、本地socket等)来实现,在HTML5中提供了原生态支持
插件方式存在的问题:
安装失败
插件被禁用或屏蔽
插件自身成为被攻击的对象
HTML5新功能
a. 新DOCTYPE和字符集
<!DOCTYPE html>: 浏览器默认以标准模式(standards mode), 浏览器根据DOCTYPE识别使用模式及页面验证规则
<meta charset="utf-8">
b. 片段类元素
header:标记头部区域的内容
footer:标记脚部区域的内容
section:web页面的一款区域
article:独立的文章内容
aside:相关内容或者引文
nav:导航类辅助内容
Selectors API选取操作
使用Selectors API可以用更精确的方式来指定希望获取的元素,不必再使用DOM方式遍历循环
新QuerySelectors方法
querySelector() 根据指定的选择规则,返回在页面中找到的第一个匹配元素,示例:querySelector("input.error"), 返回第一个CSS类名为"error"的文本输入框
querySelectorAll() 根据指定规则,返回页面中所有匹配的元素,示例:querySelectorAll("#results td"), 返回id值为results的元素下所有的单元格
可以为Selectors API函数同时指定多个选择规则,多条规则用逗号分隔
数据交换格式:
JSON成为HTML5应用内部数据交换的事实标准。
典型的JSON API包含两个函数:
parse() :字符串序列化成DOM对象
stringify() :DOM对象转换成字符串
canvas
基本元素:<canvas></canvas>
操作:加入canvas元素后,便可通过JavaScript进行自由控制;使用canvas编程,首先获得其上下文context,接着在上下文中执行动作,最后将这些动作应用到context中
//获取canvas上下文context
var context = document.getElementById(sId).getContext('2d');
//在上下文中执行动作
context.beginPath();
context.moveTo(xx, xx);
context.lineTo(xx, xx);
//将动作提交到context应用
context.stroke();
注:canvas中所有的操作都是通过上下文context对象完成的
变换(transformation):
在canvas上绘制图像的另一种方式,每个绘制操作的结果显示在canvas上之前都要经过修改正层进行修正(变换)。
canvas在执行时,变换会被呈现引擎隐式调用,与开发人员是否直接调用无关。
代码重用的重要建议:
一般绘制都应从原点(坐标系中的[0,0])开始,应用变换(缩放、平移、旋转等),然后不断修改代码直至达到希望的效果
路径:
HTML5 Canvas API中的《路径》代表希望呈现的任何形状
不论绘制任何图形,第一个需要调用的就是beginPath()方法,用来通知canvas将要开始绘制一个新图形了。
调用beginPath()方法后,就可用context对象的各种方法进行图形绘制工作了,几个简单的context路径函数:
moveTo(x, y):不绘制,只是将当前位置移动到新的目标坐标(x, y)
lineTo(x, y):不仅将当前位置移动到目标坐标,而且在两个坐标之间画一条直线
closePath(): 将路径的起始坐标自动作为目标坐标,并通知canvas当前绘制的图形已经闭合或者形成了完全封闭的区域
描边样式:
//加宽线条
context.lineWidth=4;
//平滑路径的结合点
context.lineJoin="round"/"bevel"/"miter";
//修改线条颜色
context.strokeStyle='#663300';
//线条末端的样式
context.lineCap="butt"/"square"/"round"
填充样式
//设置填充色并填充
context.fillStyle='#339900';
context.fill();
fillStyle属性进行颜色样式设置;
fill方法让canvas对当前图形中所有的闭合路径内部的像素点进行填充;