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>