Web基礎(chǔ)之HTML5

+概述:HTML5是W3C 與 WHATWG 合作的結(jié)果换可。

新特性
1)canvas:用于繪畫(huà)呛梆;
2)video/audio:用于媒體播放;
3)web離線存儲(chǔ)褒搔;
4)新的特殊內(nèi)容元素:article鞍时、footer、header仔沿、nav坐桩、section
5)新的表單控件:calendar、date封锉、time绵跷、email、url成福、search

*<video src=“a.mp4” controls=“controls”>
用于播放視頻碾局,支持的視頻格式有:Ogg,MPEG4,WebM。但不是所有瀏覽器支持奴艾;

  • 屬性:
    -> autoplay=“autoplay”:視頻在就緒后馬上播放擦俐;
    -> controls=“controls”:顯示控件欄,功能包括:播放握侧、暫停蚯瞧、定位、音量品擎、全屏切換埋合、字幕(如果要可用)、音軌(如果可用)
    ->width/height:播放器寬高
    ->loop=“l(fā)oop”:視頻在結(jié)束后重新開(kāi)始
    ->preload=“preload”:視頻在頁(yè)面加載時(shí)進(jìn)行加載萄传,并預(yù)備播放(若使用了autoplay甚颂,則無(wú)效)
    ->src=“”:要播放的url;
  • Dom操作video的方法及事件
    方法:play() pause() load() canPlayType
    屬性:currentSrc currentTime videoWidth/videoHeight duration ended error paused muted seeking volume width/height
    事件:play pause progress error timeupdate ended abort empty emptied waiting loadedmetadata

<audio src="song.ogg" controls="controls">
播放音頻:

  • 屬性:同Video

Drag/drop
用于對(duì)元素的拖放,是HTML5的標(biāo)準(zhǔn)組成秀菱,任何元素都能拖放振诬。

  • 使用步驟:
    1)設(shè)置元素為可拖放。如:<img draggable="true" />
    2)拖動(dòng)什么衍菱。規(guī)定當(dāng)元素拖動(dòng)時(shí)的回調(diào)方法ondragstart和setData()赶么。
 ![](img_logo.gif)
…
function drag(ev){ ev.dataTransfer.setData(“Text",ev.target.id);  }

3)放到何處。在ondragover事件中規(guī)定放置何處脊串。默認(rèn)無(wú)法將數(shù)據(jù)/元素放置到其他元素中辫呻。如果需要設(shè)置允許放置,我們必須阻止對(duì)元素的默認(rèn)處理方式琼锋。通過(guò)調(diào)用 ondragover 事件的 event.preventDefault() 方法放闺;
4)進(jìn)行放置。ondrop缕坎,當(dāng)放置被拖元素時(shí)怖侦,會(huì)發(fā)生drop事件。

 function drop(ev){
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));  }

canvas:畫(huà)布谜叹,使用JavaScript在網(wǎng)頁(yè)上繪制圖像匾寝;

1)創(chuàng)建:<canvas id="myCanvas" width="200" height=“100"></canvas>
2)通過(guò)javaScript繪制:

 <script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>

【cxt下的方法API類(lèi)似于java下的Canvas的方法API】

SVG(Scalable Vector Graphics):可伸縮矢量圖形,在放大或改變尺寸的情況下其圖形質(zhì)量不會(huì)有損失叉谜,用于定義用于網(wǎng)絡(luò)的基于矢量的圖形旗吁,可用xml來(lái)定義。
1)與其他圖像如jpg/gif的優(yōu)勢(shì):
—> 可通過(guò)文本編輯器來(lái)創(chuàng)建和修改停局;
—> 可被搜索很钓、索引、腳本化或壓縮董栽;
—> 可伸縮的码倦;
—> 可在任何的分辨率下被高質(zhì)量地打印锭碳;
—> 可在圖像質(zhì)量不下降的情況下被放大袁稽;

 <body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190">
  <polygon points="100,10 40,180 190,60 10,60 160,180"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>
</body>

【注:Canvas與SVG的區(qū)別】

Canvas:
—> 依賴(lài)分辨率
—> 不支持事件處理器
—> 弱的文本渲染能力
—> 能夠以 .png 或 .jpg 格式保存結(jié)果圖像
—> 最適合圖像密集型的游戲,其中的許多對(duì)象會(huì)被頻繁重繪
SVG
—> 不依賴(lài)分辨率
—> 支持事件處理器
—> 最適合帶有大型渲染區(qū)域的應(yīng)用程序(比如谷歌地圖)
—> 復(fù)雜度高會(huì)減慢渲染速度(任何過(guò)度使用 DOM 的應(yīng)用都不快)
—> 不適合游戲應(yīng)用

地理定位Geolocation:
Geolocation API 用于獲得用戶(hù)的地理位置擒抛。鑒于該特性可能侵犯用戶(hù)的隱私推汽,除非用戶(hù)同意补疑,否則用戶(hù)位置信息是不可用的。
使用 :getCurrentPosition() 方法來(lái)獲得用戶(hù)的位置歹撒。

 function getLocation(){
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);   }
  else{
x.innerHTML="Geolocation is not supported by this browser.";}
 }

web存儲(chǔ)
兩種新方法:
1)localStorage:沒(méi)有時(shí)間限制的數(shù)據(jù)存儲(chǔ)
2)sessionStorage:針對(duì)一個(gè)session的數(shù)據(jù)存儲(chǔ)莲组;當(dāng)用戶(hù)關(guān)閉瀏覽器后,數(shù)據(jù)會(huì)被刪除暖夭。
【注:這些都是由 cookie 完成的锹杈。但是 cookie 不適合大量數(shù)據(jù)的存儲(chǔ),因?yàn)樗鼈冇擅總€(gè)對(duì)服務(wù)器的請(qǐng)求來(lái)傳遞迈着,這使得 cookie 速度很慢而且效率也不高竭望。】

<script type="text/javascript">
if (localStorage.pagecount){
  localStorage.pagecount=Number(localStorage.pagecount) +1;
  }else {
  localStorage.pagecount=1;}
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>
<script type="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
</script>

Application Cache:應(yīng)用程序緩存裕菠。

  • 三個(gè)優(yōu)勢(shì):
    ->離線瀏覽咬清;
    ->速度:已緩存資源加載更快;
    ->減小服務(wù)器負(fù)載:瀏覽器將只從服務(wù)器下載更新過(guò)或更改過(guò)的資源糕韧;
    1)manifest:在html標(biāo)簽中包含manifest標(biāo)簽即可枫振,<html manifest=“demo.appcache">
    【注意:每個(gè)指定了 manifest 的頁(yè)面在用戶(hù)對(duì)其訪問(wèn)時(shí)都會(huì)被緩存。如果未指定 manifest 屬性萤彩,則頁(yè)面不會(huì)被緩存(除非在 manifest 文件中直接指定了該頁(yè)面)粪滤;manifest 文件的建議的文件擴(kuò)展名是:”.appcache”;manifest 文件需要配置正確的 MIME-type雀扶,即 "text/cache-manifest"杖小。必須在 web 服務(wù)器上進(jìn)行配置∮弈梗】
    包含三個(gè)部分:
    1)CACHE MANIFEST - 在此標(biāo)題下列出的文件將在首次下載后進(jìn)行緩存
    2)NETWORK - 在此標(biāo)題下列出的文件需要與服務(wù)器的連接予权,且不會(huì)被緩存
    3)FALLBACK - 在此標(biāo)題下列出的文件規(guī)定當(dāng)頁(yè)面無(wú)法訪問(wèn)時(shí)的回退頁(yè)面(比如 404 頁(yè)面)

**Web Worker
**:后臺(tái)任務(wù)。是運(yùn)行在后臺(tái)的 JavaScript浪册,獨(dú)立于其他腳本扫腺,不會(huì)影響頁(yè)面的性能。您可以繼續(xù)做任何愿意做的事情:點(diǎn)擊村象、選取內(nèi)容等等笆环,而此時(shí) web worker 在后臺(tái)運(yùn)行。
1)創(chuàng)建:if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); }
2)監(jiān)聽(tīng):w.onmessage=function(event){document.getElementById(“result").innerHTML=event.data;};
3)終止:w.terminate();
【注意:由于web workder位于外部文件中厚者,無(wú)法以訪問(wèn):window對(duì)象躁劣、document、parent對(duì)象】

server-sent event:服務(wù)器發(fā)送事件库菲,允許網(wǎng)頁(yè)獲得來(lái)自服務(wù)器的更新账忘。

  • 單向消息傳遞。除了IE外都支持。
    1)創(chuàng)建一個(gè)EventSource對(duì)象鳖擒,然后規(guī)定發(fā)送更新的頁(yè)面的url;
    2)每接收一次更新溉浙,就會(huì)發(fā)生onmessage事件
    3)在onmessage事件中取出數(shù)據(jù)。
var source=new EventSource("demo_sse.php");
source.onmessage=function(event) {
  document.getElementById("result").innerHTML+=event.data + "<br />";};

注意:服務(wù)器端須將Content-Type設(shè)置為text/event-stream】

其他事件:
—> onopen:當(dāng)與服務(wù)器的連接被打開(kāi)
—> onerror:當(dāng)錯(cuò)誤發(fā)生

Input元素新增類(lèi)型
—> email:用于應(yīng)該包含 e-mail 地址的輸入域蒋荚。
—> url:應(yīng)該包含 URL 地址的輸入域放航。
—> number:用于應(yīng)該包含數(shù)值的輸入域(包括max、min圆裕、step、value屬性)荆几。
—> range:滑動(dòng)條吓妆,包含一定范圍內(nèi)數(shù)字值的輸入域。(包括max吨铸、min行拢、step、value屬性)
—> Date pickers:多個(gè)可供選取日期和時(shí)間的新輸入類(lèi)型:date(日/月/年)诞吱、month舟奠、week、time(時(shí)/分)房维、datetime(日/月/年/時(shí)/分)沼瘫、datetime-local
—> search:用于搜索域
—> color:

Input/Form新增屬性
—> autocomplete:規(guī)定form或input域應(yīng)該擁有自動(dòng)完成功能,適用元素<input>下的:text, search, url, telephone, email, password, date pickers, range 以及 color
<form action="demo_form.asp" method="get" autocomplete=“on">
<input type="email" name="email" autocomplete="off" />
—>autofocus:規(guī)定在頁(yè)面加載時(shí)咙俩,域自動(dòng)獲得焦點(diǎn)耿戚。
<input type="text" name="user_name" autofocus="autofocus" />
—> form:規(guī)定輸入域所屬的是一個(gè)或個(gè)全表單
<input type="text" name="lname" form="user_form" />
—>form overrides(formaction,formenctype,formmethod,formtarget):即重寫(xiě)這些屬性。適用于<input>下的:submit和image,如:
<input type="submit" formaction="demo_admin.asp" value="sure" />
—> height/width:規(guī)定用于 image 類(lèi)型的 input 標(biāo)簽的圖像高度和寬度阿趁。
—>list:規(guī)定輸入域的 datalist膜蛔。datalist 是輸入域的選項(xiàng)列表。
—> min/max/step:用于為包含數(shù)字或日期的 input 類(lèi)型規(guī)定限定(約束)脖阵,適用于<input>下的:data pickers皂股、number、range
—>multiple:規(guī)定輸入域中可選擇多個(gè)值命黔。適用于<input>下的:email和file
—> pattern(regexp):規(guī)定用于驗(yàn)證 input 域的模式(pattern)呜呐。適用于<input>下的:text, search, url, telephone, email 以及 password。
—> placeholder:提供一種提示(hint)纷铣,描述輸入域所期待的值.
—> required:規(guī)定必須在提交之前填寫(xiě)輸入域(不能為空)卵史。
<input type="text" name="usr_name" required="required" />
—> novalidate:規(guī)定在提交表單時(shí)不應(yīng)該驗(yàn)證 form 或 input 域。適用于<input>下的:text, search, url, telephone, email, password, date pickers, range 以及 color.
<form action="demo_form.asp" method="get" novalidate=“true">

Form元素新增元素
—> datalist:輸入框下帶一個(gè)選項(xiàng)列表搜立,列表是通過(guò) datalist 內(nèi)的 option 元素創(chuàng)建的以躯。

<input type="url" list="url_list" name="link" />
    <datalist id="url_list">
        <option label="W3School" value="http://www.W3School.com.cn" />
        <option label="Google" value="http://www.google.com" />
        <option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

【注意:option 元素永遠(yuǎn)都要設(shè)置 value 屬性。】

—> keygen:密鑰對(duì)生成器(key-pair generator),是提供一種驗(yàn)證用戶(hù)的可靠方法忧设,當(dāng)提交表單時(shí)刁标,會(huì)生成兩個(gè)鍵,一個(gè)是私鑰址晕,一個(gè)公鑰膀懈。
私鑰(private key)存儲(chǔ)于客戶(hù)端,公鑰(public key)則被發(fā)送到服務(wù)器谨垃。公鑰可用于之后驗(yàn)證用戶(hù)的客戶(hù)端證書(shū)(client certificate)启搂。但各瀏覽器支持度都不是很好。
—> output:用于不同類(lèi)型的輸出刘陶,比如計(jì)算或腳本輸出胳赌。

博客地址:Web基礎(chǔ)之HTML5

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市匙隔,隨后出現(xiàn)的幾起案子疑苫,更是在濱河造成了極大的恐慌,老刑警劉巖纷责,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捍掺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡再膳,警方通過(guò)查閱死者的電腦和手機(jī)挺勿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)饵史,“玉大人满钟,你說(shuō)我怎么就攤上這事「炫纾” “怎么了湃番?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吭露。 經(jīng)常有香客問(wèn)我吠撮,道長(zhǎng),這世上最難降的妖魔是什么讲竿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任泥兰,我火速辦了婚禮,結(jié)果婚禮上题禀,老公的妹妹穿的比我還像新娘鞋诗。我一直安慰自己,他們只是感情好迈嘹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布削彬。 她就那樣靜靜地躺著全庸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪融痛。 梳的紋絲不亂的頭發(fā)上壶笼,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音雁刷,去河邊找鬼覆劈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沛励,可吹牛的內(nèi)容都是我干的责语。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼目派,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鹦筹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起址貌,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徘键,沒(méi)想到半個(gè)月后练对,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹害,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年螟凭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片它呀。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡螺男,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纵穿,到底是詐尸還是另有隱情下隧,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布谓媒,位于F島的核電站淆院,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏句惯。R本人自食惡果不足惜土辩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抢野。 院中可真熱鬧拷淘,春花似錦、人聲如沸指孤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至逝嚎,卻和暖如春扁瓢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背补君。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工引几, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挽铁。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓伟桅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親叽掘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子楣铁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)更扁,斷路器盖腕,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 接上 關(guān)于HTML/HTML5(一)http://www.reibang.com/p/33fc7840c079 學(xué)...
    Amyyy_閱讀 789評(píng)論 0 4
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)浓镜、<...
    clark124閱讀 3,482評(píng)論 1 19
  • 昨天的一天溃列,是我想要的生活。
    叫我葉姑娘閱讀 175評(píng)論 0 0
  • 今天是4月24日膛薛,我的生日听隐。清早起床,打開(kāi)QQ哄啄,收到很多人的祝福雅任。有爸爸的,有好朋友的咨跌,有小學(xué)初高中同學(xué)的沪么,還有一...
    插著扇子的石頭閱讀 463評(píng)論 5 6