1.语义化标签:html
header\section\aside\footerhtml5
2.音视频播放:web
video\audiocanvas
其中video支持ogg\mpeg4\webm格式的视频;浏览器
3.canvas服务器
一.画矩形:cookie
1 function draw(){ 2 var canvas = document.getElementById('mycanvas'); 3 if (canvas.getContext){ 4 var ctx = canvas.getContext('2d'); 5 ctx.fillRect(25,25,100,100); 6 ctx.clearRect(45,45,60,60); 7 ctx.strokeRect(50,50,50,50); 8 } 9 }
二.画线条:session
function drawShape(){ var canvas = document.getElementById('mycanvas'); if (canvas.getContext){ var ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(25,25); ctx.lineTo(105,25); ctx.lineTo(25,105); ctx.fill(); ctx.beginPath(); ctx.moveTo(125,125); ctx.lineTo(125,45); ctx.lineTo(45,125); ctx.closePath(); ctx.stroke(); } }
三.画曲线:ide
1 function drawShape(){ 2 var canvas = document.getElementById('mycanvas'); 3 4 if (canvas.getContext){ 5 6 // use getContext to use the canvas for drawing 7 var ctx = canvas.getContext('2d'); 8 // Draw shapes 9 ctx.beginPath(); 10 ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle 11 ctx.moveTo(110,75); 12 ctx.arc(75,75,35,0,Math.PI,false); // Mouth 13 ctx.moveTo(65,65); 14 ctx.arc(60,65,5,0,Math.PI*2,true); // Left eye 15 ctx.moveTo(95,65); 16 ctx.arc(90,65,5,0,Math.PI*2,true); // Right eye 17 ctx.stroke(); 18 19 } 20 }
其中arc(x, y, radius, startAngle, endAngle, anticlockwise)ui
x,y:圆心坐标
radius : 半径
startAngle和 endAngle分别是起末弧度(以 x 轴为基准)
anticlockwise为 true表示逆时针,反之顺时针
4.一些新的input元素
html5拥有多个新的表单输入类型。这些新特性提供了更好的输入控制和验证。
html5新的Input类型有:email , url , number , range , Date pickers(date,month,week,time,datetime,datetime-local) , search , color
input新增的一些属性:
autoconmplete
autoconmplete能够赋值为 on 或者 off。当为 on的时候,浏览器能自动存储用户输入的内容。当用户返回到曾经填写过值的页面的时候,浏览器能把用户写过的值自动填写在相应的input框里。
autofocus
autofocus 能够赋值为 autofocus,也就是在页面加载完成的时候自动聚焦到这个input标签,天然 type="hidden"的时候是不能用的。 这个也是一个比较常见的效果,至今为止的实现方法是用js。在页面加载完时执行聚焦操做,如今也被一个属性搞定了。
能够想象,一个页面至多只有一个input标签会设置 autofocus,不然必然不会达到预期效果。由于不可能同时聚焦在两个input上。
required
input的有一个强力新增属性,免去验证的麻烦。能够赋值为 required。
好比用户注册页面的用户名和密码都是必填的,只要设置一个required就能够了。而在之前是须要js来验证或者后台验证的。
注意:这里required属性是须要用户来填写的,因此TYPE是button、submit、reset等等不须要用户填写选择的类型是不可使用这个属性的。
placeholder
这个新增属性也是很是使用,用在type= text email等等类型的时候,提示用户输入信息的格式或者内容等等。这个效果在以前也是须要js来实现的。
list属性
这个属性显示相似于百度搜索框那种联想框效果,也是很是实用的一个属性。
注意从这个属性使用的特色:须要有对应的datalist标签;datalist子标签option支持 value和lable两个属性;list的属性值要和datalist的id一致。
min\max属性
能够来限制数值范围,minheight、maxheight属性来限制字符串长度。此次maxlength终于有好朋友minlength了。
5.web storage
存储相关的主要是localStorage和sessionStorage.比较下web storage和cookie:
cookie的存储限制在了4k以内,相比来讲,session storage有了更大的存储空间,但至于具体多大,这要参照具体浏览器。
cookie有一个机制,就是在每次客户端请求服务器的时候都会将cookie发送给服务器,这无疑会作不少没必要要的操做,由于并非每次请求服务器都须要cookie的全部信息,而session storage很好的解决了这个问题,它不是采起自动发送的方式,这样就减小了没必要要的工做。
经过sessionStorage所存储数据的生命周期,和Session相似,关闭浏览器(或标签页)后数据就不存在了。但刷新页面或使用“前进”、“后退按钮”后sessionStorage仍然存在。
session storage每一个窗口的值都是独立的(每一个窗口都有本身的数据),它的数据会随着窗口的关闭而消失,窗口间的sessionStorage也是不能够共享的。
setItem中的key、value使用的是字符串的形式进行存储的。也就是说若是有以下的代码:setItem(‘count’, 1);经过getItem(‘count’) + 5 获得的将不是预期的6(整数),而是’16’(字符串)。
再次使用setItem设置已经存在的key的value时,新的值将替代旧的值。
当存储中的数据发生改变时,会触发相应的事件(window.onstorage),但目前各浏览器对此事件的支持并不完善,暂时能够忽略。
关于microdata
<ul role="menubar"> <!-- Rule 2A: "File" label via aria-labelledby --> <li role="menuitem" aria-haspopup="true" aria-labelledby="fileLabel"><span id="fileLabel">File</span> <ul role="menu"> <!-- Rule 2C: "New" label via Namefrom:contents --> <li role="menuitem">New</li> <li role="menuitem">Open…</li> … </ul> </li> … </ul>