web 基礎(二) HTML5
web 基礎(二) HTML5
一、HTML5
HTML5 是最新的 HTML 標準。是專門為承載豐富的 web 內容而設計的,並且無需額外外掛。它擁有新的語義、圖形以及多媒體元素。並提供的新元素和新的 API 簡化了 web 應用程式的搭建,是跨平臺的,被設計為在不同型別的硬體(PC、平板、手機、電視機等等)之上執行。
總而言之,HTML5 屬於上一代HTML的新迭代語言,設計HTML5最主要的目的是為了在移動裝置上支援多媒體!
HTML5 的檔案規範:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><title>Title of the document</title>
</head>
<body>
Content of the document......
</body>
</html>
相比 HTML4 及以下版本,HTML5 的檔案型別(DOCTYPE)宣告非常簡單,HTML5 中預設的字元編碼是 UTF-8。
二、HTML5 新特性
- 新的語義元素。比如 <header>, <footer>, <article>, and <section>。
- 新的表單控制元件。比如數字、日期、時間、日曆和滑塊。
- 強大的影象支援(藉由 <canvas> 和 <svg>)。
- 強大的多媒體支援(藉由 <video> 和 <audio>)。
- 強大的新 API。比如用本地儲存取代 cookie。
三、瀏覽器對 HTML5 的支援
目前,所有現代瀏覽器都支援 HTML5。此外,所有瀏覽器,不論新舊,都會自動把未識別元素當做行內元素來處理。正因如此,可以用下面三種方式來幫助老式瀏覽器處理“未知的“ HTML 元素,以實現瀏覽器對 HTML5 的支援:
1、把 HTML5 元素定義為塊級元素
HTML5 定義了八個新的語義HTML 元素。所有都是塊級元素。可以把 CSSdisplay屬性設定為block,以確保老式瀏覽器中正確的行為,如下所示:
header, section, footer, aside, nav, main, article, figure {
display: block;
}
2、向 HTML 檔案中新增新元素
可以通過瀏覽器 trick 向 HTML 新增任何新元素,如下示例是向 HTML 添加了一個名為<my>的新元素,併為其定義 display 樣式為block:
<!DOCTYPE html>
<html> <head>
<title>an HTML Element</title>
<script>document.createElement("my")</script>
<style>
myHero {
display: block;
}
</style>
</head>
<body>
<my>My First Hero</my>
</body>
</html>
注意:已新增的 JavaScript 語句document.createElement("my"),僅適用於 IE核心的瀏覽器。
上述兩種方案可用於所有新的 HTML5 元素,但是對於Internet Explorer 8 以及更早的版本,不允許對未知元素新增樣式。此時需要用到下面的Shiv 解決方案。
3、完整的 Shiv 解決方案
在 Internet Explorer 8 以及更早的版本,不允許對未知元素新增樣式。幸運的是,Sjoerd Visscher 創造了 "HTML5 Enabling JavaScript","the shiv"的外掛:html5shiv.min.js,在HTML5 檔案中引用此檔案,可以實現對HTML5 的支援,如下示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<!--[if lte IE 9]>
<script type="text/javascript" src="js/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>頭部</header>
</body>
</html>
注意:以上程式碼是一段註釋,但是 IE9 的早期版本會讀取它(並理解它)。引用 JS 外掛程式碼的連結必須位於 <head> 元素中,因為 Internet Explorer 需要在讀取之前認識所有新元素。
由於第三種方案可以解決大部分相容性問題,所以推薦使用第三種Shiv 解決方案。
四、HTML5 中新元素及屬性
這邊列出了常用的元素和相關屬性,詳細的可以訪問各個章節:HTML5 教程。
(一)、新元素
標籤 |
描述 |
|
<canvas>新元素 |
<canvas> |
標籤定義圖形,比如圖表和其他影象,該標籤基於JS的繪畫API |
新多媒體元素 |
<audio> |
定義音訊內容 |
<video> |
定義視訊(video或者movie) |
|
<source> |
定義多媒體資源<video>和<audio> |
|
<embed> |
定義嵌入的內容,比如外掛 |
|
<track> |
為諸如<video>和<audio>元素之類的媒介規定外部文字軌道 |
|
新表單元素 |
<datalist> |
定義選項列表。與input元素配合使用,來定義input可能的值。 |
<keygen> |
規定用於表單的金鑰對生成欄位。 |
|
<output> |
定義不同型別的輸出,比如指令碼的輸出。 |
|
新的語義和結構元素 |
<aside> |
定義頁面的側邊欄內容 |
<dialog> |
定義對話方塊,比如提示框 |
|
<figure> |
規定獨立的流內容(影象圖表照片程式碼等) |
|
<figcaption> |
定義<figure>元素的標題 |
|
<footer> |
定義section或decument的頁尾 |
|
<header> |
定義檔案的頭部區域 |
|
<nav> |
定義執行中的進度 |
|
<section> |
定義檔案中的節 |
|
<time> |
定義日期或時間 |
(二)、新表單屬性
1、智慧表單控制元件
<input type="email">
type可選以下型別:
email: 輸入合法的郵箱地址
url: 輸入合法的網址
number: 只能輸入數字
range: 滑塊
color: 拾色器
date: 顯示日期
month: 顯示月份
week : 顯示第幾周
time: 顯示時間
五、HTML5 示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表單屬性示例</title>
</head>
<body>
<form action="test.action" method="get" autocomplete="off" novalidate>
郵箱地址:
<input type="email" name="">
<input type="submit" name="">
</form>
</body>
</html>