html5 學習第四天

HTML5?語義元素

什么是語義元素?

一個語義元素能夠清楚的描述其意義給瀏覽器和開發(fā)者及汉。

無語義?元素實例:?<div> 和 <span> - 無需考慮內容.

語義?元素實例:?<form>, <table>, and <img> - 清楚的定義了它的內容.

HTML5 <section> 元素

<section> 標簽定義文檔中的節(jié)(section沮趣、區(qū)段)。比如章節(jié)坷随、頁眉房铭、頁腳或文檔中的其他部分。

根據(jù)W3C HTML5文檔: section 包含了一組內容及其標題温眉。

<section>?

?<h1>WWF</h1>?

?<p>The World Wide Fund for Nature (WWF) is....</p>

</section>

HTML5 <article> 元素

<article> 標簽定義獨立的內容缸匪。.

<article> 元素使用實例:

Forum post

Blog post

News story

Comment

<article>?

?<h1>Internet Explorer 9</h1> ?

<p>Windows Internet Explorer 9(縮寫為 IE9 )在2011年3月14日21:00 發(fā)布。</p>

</article>

HTML5 <nav> 元素

<nav> 標簽定義導航鏈接的部分类溢。

<nav> 元素用于定義頁面的導航鏈接部分區(qū)域凌蔬,但是,不是所有的鏈接都需要包含在 <nav> 元素中!

<nav> <a href="/html/">HTML</a> |

? ? <a href="/css/">CSS</a> |

? ? <a href="/js/">JavaScript</a> |

? ? <a href="/jquery/">jQuery</a>

</nav>

HTML5 <aside> 元素

<aside> 標簽定義頁面主區(qū)域內容之外的內容(比如側邊欄)闯冷。aside 標簽的內容應與主區(qū)域的內容相關.

<p>My family and I visited The Epcot center this summer.</p>?

<aside>?

?<h4>Epcot Center</h4>?

?<p>The Epcot Center is a theme park in Disney World, Florida.</p>

</aside>

HTML5 <header> 元素

<header>元素描述了文檔的頭部區(qū)域砂心,<header>元素主要用于定義內容的介紹展示區(qū)域.在頁面中你可以使用多個<header> 元素,以下實例定義了文章的頭部:

<article>?

?????<header>?

?????????<h1>Internet Explorer 9</h1>?

?????????<p><time pubdate datetime="2011-03-15"></time></p>?

?????</header>?

?????<p>Windows Internet Explorer 9(縮寫為 IE9 )是在2011年3月14日21:00發(fā)布的</p>

</article>

HTML5 <footer> 元素

<footer> 元素描述了文檔的底部區(qū)域蛇耀,<footer> 元素應該包含它的包含元素辩诞,一個頁腳通常包含文檔的作者,著作權信息纺涤,鏈接的使用條款译暂,聯(lián)系信息等抠忘,文檔中你可以使用多個 <footer>元素.

<footer>?

?????<p>Posted by: Hege Refsnes</p>?

?????<p><time pubdate datetime="2012-03-01"></time></p>

</footer>

HTML5 <figure> 和 <figcaption> 元素

<figure>標簽規(guī)定獨立的流內容(圖像、圖表秧秉、照片褐桌、代碼等等)。

<figure> 元素的內容應該與主內容相關象迎,但如果被刪除荧嵌,則不應對文檔流產(chǎn)生影響。

<figcaption> 標簽定義 <figure> 元素的標題.

<figcaption>元素應該被置于 "figure" 元素的第一個或最后一個子元素的位置砾淌。

<figure>?

?????<img src="img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228">?

?????<figcaption>Fig1. - The Pulpit Pock, Norway.</figcaption>

</figure>

我們可以開始使用這些語義元素嗎?

以上的元素都是塊元素(除了<figcaption>).

為了讓這些塊及元素在所有版本的瀏覽器中生效啦撮,你需要在樣式表文件中設置一下屬性 (以下樣式代碼可以讓舊版本瀏覽器支持本章介紹的塊級元素):

header, section, footer, aside, nav, article, figure

{

????display: block;

}

Internet Explorer 8 及更早IE版本中的問題

IE8 及更早IE版本無法在這些元素中渲染CSS效果,以至于你不能使用 <header>, <section>, <footer>, <aside>, <nav>, <article>, <figure>, 或者其他的HTML5 elements.

解決辦法:?你可以使用HTML5 Shiv Javascript腳本來解決IE的兼容問題汪厨。HTML5 Shiv下載地址:https://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js

<!--[if lt IE 9]>

<script src="html5shiv.js"></script>

<![endif]-->

以上代碼在瀏覽器小于IE9版本時會加載html5shiv.js文件. 你必須將其放置于<head> 元素中赃春,因為 IE瀏覽器需要在頭部加載后渲染這些HTML5的新元素

HTML5?Web 存儲

什么是 HTML5 Web 存儲?

使用HTML5可以在本地存儲用戶的瀏覽數(shù)據(jù)。

早些時候,本地存儲使用的是 cookie劫乱。但是Web 存儲需要更加的安全與快速. 這些數(shù)據(jù)不會被保存在服務器上织中,但是這些數(shù)據(jù)只用于用戶請求網(wǎng)站數(shù)據(jù)上.它也可以存儲大量的數(shù)據(jù),而不影響網(wǎng)站的性能.

數(shù)據(jù)以 鍵/值 對存在, web網(wǎng)頁的數(shù)據(jù)只允許該網(wǎng)頁訪問使用衷戈。

localStorage 和 sessionStorage?

客戶端存儲數(shù)據(jù)的兩個對象為:

localStorage - 用于長久保存整個網(wǎng)站的數(shù)據(jù)狭吼,保存的數(shù)據(jù)沒有過期時間,直到手動去除殖妇。

sessionStorage - 用于臨時保存同一窗口(或標簽頁)的數(shù)據(jù)刁笙,在關閉窗口或標簽頁之后將會刪除這些數(shù)據(jù)。

localStorage 對象

localStorage 對象存儲的數(shù)據(jù)沒有時間限制谦趣。第二天疲吸、第二周或下一年之后,數(shù)據(jù)依然可用前鹅。

localStorage.sitename="菜鳥教程";

document.getElementById("result").innerHTML="網(wǎng)站名:" + localStorage.sitename;

移除 localStorage 中的 "sitename" :

localStorage.removeItem("sitename");

不管是 localStorage摘悴,還是 sessionStorage,可使用的API都相同舰绘,常用的有如下幾個(以localStorage為例):

保存數(shù)據(jù):localStorage.setItem(key,value);

讀取數(shù)據(jù):localStorage.getItem(key);

刪除單個數(shù)據(jù):localStorage.removeItem(key);

刪除所有數(shù)據(jù):localStorage.clear();

得到某個索引的key:localStorage.key(index);

實例展示了用戶點擊按鈕的次數(shù)烦租。

if (localStorage.clickcount){?

?????????????localStorage.clickcount=Number(localStorage.clickcount)+1;}

????????else{ ????

????????????????localStorage.clickcount=1;}

document.getElementById("result").innerHTML=" 你已經(jīng)點擊了按鈕 " + localStorage.clickcount + " 次 ";

Web Storage 開發(fā)一個簡單的網(wǎng)站列表程序

網(wǎng)站列表程序實現(xiàn)以下功能:

? ??可以輸入網(wǎng)站名,網(wǎng)址除盏,以網(wǎng)站名作為key存入localStorage叉橱;

? ??根據(jù)網(wǎng)站名,查找網(wǎng)址者蠕;

? ??列出當前已保存的所有網(wǎng)站窃祝;

//保存數(shù)據(jù) function save(){

? ? var siteurl = document.getElementById("siteurl").value;?

? ? var sitename = document.getElementById("sitename").value;?

? ? localStorage.setItem(sitename, siteurl);

? ? alert("添加成功");}

//查找數(shù)據(jù)? function find(){?

? ? var search_site = document.getElementById("search_site").value;?

? ? var sitename = localStorage.getItem(search_site);?

? ? var find_result = document.getElementById("find_result");?

? ? find_result.innerHTML = search_site + "的網(wǎng)址是:" + sitename;? }

<div style="border: 2px dashed #ccc;width:320px;text-align:center;">

? ? <label for="sitename">網(wǎng)站名(key):</label>?

? ? <input type="text" id="sitename" name="sitename" class="text"/>?

? ? <br/>?

? ? <label for="siteurl">網(wǎng) 址(value):</label>?

? ? <input type="text" id="siteurl" name="siteurl"/>?

? ? <br/>?

? ? <input type="button" onclick="save()" value="新增記錄"/>?

? ? <hr/>?

? ? <label for="search_site">輸入網(wǎng)站名:</label>?

? ? <input type="text" id="search_site" name="search_site"/>?

? ? <input type="button" onclick="find()" value="查找網(wǎng)站"/>?

? ? <p id="find_result"><br/></p>? </div>

HTML5 Web SQL 數(shù)據(jù)庫

Web SQL 數(shù)據(jù)庫 API 并不是 HTML5 規(guī)范的一部分,但是它是一個獨立的規(guī)范踱侣,引入了一組使用 SQL 操作客戶端數(shù)據(jù)庫的 APIs粪小。如果你是一個 Web 后端程序員大磺,應該很容易理解 SQL 的操作。Web SQL 數(shù)據(jù)庫可以在最新版的 Safari, Chrome 和 Opera 瀏覽器中工作探膊。

核心方法

以下是規(guī)范中定義的三個核心方法:

1杠愧,openDatabase:這個方法使用現(xiàn)有的數(shù)據(jù)庫或者新建的數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫對象。

2逞壁,transaction:這個方法讓我們能夠控制一個事務流济,以及基于這種情況執(zhí)行提交或者回滾。

3腌闯,executeSql:這個方法用于執(zhí)行實際的 SQL 查詢绳瘟。

打開數(shù)據(jù)庫

我們可以使用 openDatabase() 方法來打開已存在的數(shù)據(jù)庫,如果數(shù)據(jù)庫不存在姿骏,則會創(chuàng)建一個新的數(shù)據(jù)庫糖声,

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

openDatabase() 方法對應的五個參數(shù)說明:

1,數(shù)據(jù)庫名稱

2分瘦,版本號

3蘸泻,描述文本

4,數(shù)據(jù)庫大小

5嘲玫,創(chuàng)建回調(會在創(chuàng)建數(shù)據(jù)庫后被調用)

執(zhí)行查詢操作

執(zhí)行操作使用 database.transaction() 函數(shù):

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

? tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');});

插入數(shù)據(jù)

在執(zhí)行上面的創(chuàng)建表語句后悦施,我們可以插入一些數(shù)據(jù):

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {?

?tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

? tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鳥教程")');

? tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');});

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {

? tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

? tx.executeSql('INSERT INTO LOGS (id,log) VALUES (?, ?)', [e_id, e_log]);});

讀取數(shù)據(jù)

以下實例演示了如何讀取數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù):

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

db.transaction(function (tx) {?

tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');

? tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "菜鳥教程")');

? tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "www.runoob.com")');});

db.transaction(function (tx) {??

?tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {? ? ??

????????var len = results.rows.length, i;

? ? ? msg = "<p>查詢記錄條數(shù): " + len + "</p>";

? ? ? document.querySelector('#status').innerHTML +=? msg;


? ? ? for (i = 0; i < len; i++){? ? ? ?

?????????????alert(results.rows.item(i).log );

? ? ? }? ?

? }, null);});

刪除記錄

刪除記錄使用的格式如下:

db.transaction(function (tx) {?

?tx.executeSql('DELETE FROM LOGS WHERE id=1');});

刪除指定的數(shù)據(jù)id也可以是動態(tài)的:

db.transaction(function(tx) {?

?tx.executeSql('DELETE FROM LOGS WHERE id=?', [id]);});

更新記錄

更新記錄使用的格式如下:

db.transaction(function (tx) {?

?tx.executeSql('UPDATE LOGS SET log=\'www.w3cschool.cc\' WHERE id=2');});

更新指定的數(shù)據(jù)id也可以是動態(tài)的:

db.transaction(function(tx) {?

?tx.executeSql('UPDATE LOGS SET log=\'www.w3cschool.cc\' WHERE id=?', [id]);});

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市趁冈,隨后出現(xiàn)的幾起案子歼争,更是在濱河造成了極大的恐慌拜马,老刑警劉巖渗勘,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俩莽,居然都是意外死亡旺坠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門扮超,熙熙樓的掌柜王于貴愁眉苦臉地迎上來取刃,“玉大人,你說我怎么就攤上這事出刷¤盗疲” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵馁龟,是天一觀的道長崩侠。 經(jīng)常有香客問我,道長坷檩,這世上最難降的妖魔是什么却音? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任改抡,我火速辦了婚禮,結果婚禮上系瓢,老公的妹妹穿的比我還像新娘阿纤。我一直安慰自己,他們只是感情好夷陋,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布欠拾。 她就那樣靜靜地躺著,像睡著了一般肌稻。 火紅的嫁衣襯著肌膚如雪清蚀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天爹谭,我揣著相機與錄音枷邪,去河邊找鬼。 笑死诺凡,一個胖子當著我的面吹牛东揣,可吹牛的內容都是我干的。 我是一名探鬼主播腹泌,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼嘶卧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凉袱?” 一聲冷哼從身側響起芥吟,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎专甩,沒想到半個月后钟鸵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡涤躲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年棺耍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片种樱。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒙袍,死狀恐怖,靈堂內的尸體忽然破棺而出嫩挤,到底是詐尸還是另有隱情害幅,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布岂昭,位于F島的核電站以现,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜叼风,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一取董、第九天 我趴在偏房一處隱蔽的房頂上張望企量。 院中可真熱鬧戚哎,春花似錦送粱、人聲如沸胚股。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窑业。三九已至翔怎,卻和暖如春彬碱,著一層夾襖步出監(jiān)牢的瞬間豆胸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工巷疼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晚胡,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓嚼沿,卻偏偏與公主長得像估盘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子骡尽,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容

  • _________________________________________________________...
    fastwe閱讀 611評論 0 0
  • HTML5 Web 存儲 HTML5 應用程序緩存HTML5 Web SQL 數(shù)據(jù)庫Web SQL 數(shù)據(jù)庫 API...
    依依玖玥閱讀 720評論 0 1
  • 瀏覽器緩存(Browser Caching)是瀏覽器端保存數(shù)據(jù)用于快速讀取或避免重復資源請求的優(yōu)化機制攀细,有效的緩存...
    fuyou2324閱讀 5,167評論 0 8
  • Web SQL數(shù)據(jù)庫API 并不是HTML5規(guī)范的一部分箫踩,但是他是一個獨立的規(guī)范,引入一組使用SQL操作客戶端數(shù)據(jù)...
    龍飝閱讀 507評論 0 1
  • SGML(標準通用標記語言)和HTML(超文本標記語言)谭贪,XML(可擴展標記語言)和HTML的之間有什么關系境钟? S...
    王培921223閱讀 1,360評論 0 3