趙健的技術筆記

IT課程 HTML基礎 015_HTML5新特性

學習 / HTML基礎 約 5862 字 · 15 分鐘 - 次閱讀

HTML5新特性

HTML5 是 HTML 的最新版本,它引入了許多新的標籤、屬性和功能,大大增強了 web 的功能和互動性。

HTML5 中的一些有趣的新特性:

  • 用於繪畫的 canvas 元素
  • 用於媒介回放的 video 和 audio 元素
  • 對本地離線存儲的更好的支持
  • 新的特殊內容元素,比如 article、footer、header、nav、section
  • 新的表單控件,比如 calendar、date、time、email、url、search

<canvas>

HTML5 <canvas> 元素用於在網頁中繪製圖形。<canvas> 元素基於 JavaScript 的繪圖 API,可以用於創建各種圖形,包括圖表、圖形、動畫等。

示例:

<canvas width="500" height="500">
您的瀏覽器不支持 HTML5 canvas 標籤。
</canvas>
<script>
const canvas = document.querySelector("canvas");
// 獲取繪圖上下文
const ctx = canvas.getContext("2d");
// 繪製圓形
ctx.beginPath();
ctx.arc(250, 250, 100, 0, 2 * Math.PI);
ctx.fillStyle = "yellow";
ctx.fill();
</script>

效果:

示例效果


<svg>

HTML5 SVG 元素用於在網頁中創建 SVG 圖形。SVG 圖形是基於 XML 的矢量圖形,可以無損縮放,適合用於各種目的,包括:

SVG 元素包括:

  • <svg> 元素:定義 SVG 圖形的根元素。
  • <path> 元素:定義路徑形狀。
  • <rect> 元素:定義矩形形狀。
  • <circle> 元素:定義圓形形狀。
  • <ellipse> 元素:定義橢圓形形狀。
  • <line> 元素:定義直線。
  • <polygon> 元素:定義多邊形。
  • <polyline> 元素:定義折線。
  • <text> 元素:定義文本。
  • <g> 元素:定義組,用於將 SVG 元素分組在一起。
  • <defs> 元素:定義全局屬性,可用於應用於多個 SVG 元素。

示例:

<svg width="500" height="500">
<circle cx="250" cy="250" r="100" fill="yellow" />
</svg>

效果:

示例效果

SVG 和 Canvas 都是用於在網頁中創建圖形的工具。它們都具有各自的優點和缺點,適用於不同的場景。

SVG 是基於 XML 的矢量圖形,可以無損縮放。這意味著 SVG 圖形可以以任意大小顯示,而不會失去質量。SVG 圖形還可以使用 CSS 和 JavaScript 進行操作和動畫化。

Canvas 是基於 JavaScript 的繪圖 API,可以創建位圖圖形。這意味著 Canvas 圖形不能無損縮放,但可以使用 JavaScript 創建更複雜的圖形。Canvas 圖形還可以使用 JavaScript 進行操作和動畫化。

SVG 和 Canvas 的具體區別:

特性SVGCanvas
圖像類型矢量位圖
縮放無損有損
圖形類型矩形、圓形、路徑等任意
操作CSS、JavaScriptJavaScript
動畫CSS、JavaScriptJavaScript
文件大小通常較小通常較大
可訪問性優秀一般
  • SVG 適用於場景:

    • 需要無損縮放的圖形,例如圖標、徽標、插圖
    • 需要使用 CSS 和 JavaScript 進行操作和動畫化的圖形
  • Canvas 適用於場景:

    • 需要創建複雜圖形的場景,例如遊戲、動畫
    • 需要使用 JavaScript 進行複雜操作的場景

HTML5表單

HTML5 引入了一些新的輸入類型和屬性,以增強表單的功能和易用性。

新的表單元素:

  • <datalist> 元素:用於 <input> 元素的預定義選項列表。

示例:

<label for="browser">選擇瀏覽器:</label>
<input list="browsers" id="browser" name="browser" autocomplete="off">
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Safari">
<option value="Edge">
<option value="Opera">
</datalist>

效果:

示例效果

元素描述
<datalist>定義一個用於 <input> 元素的預定義選項列表。
<output>表示計算的結果。
<keygen>為表單創建密鑰對,通常用於密鑰交換。
<progress>定義任何類型的任務的進度條。
<meter>衡量已知範圍內的標量值或分數。

新的表單屬性:

  • <form> / <input> autocomplete 屬性:規定 form 或 input 域應該擁有自動完成功能。當用戶在自動完成域中開始輸入時,瀏覽器應該在該域中顯示填寫的選項。

示例:

<form action="demo-form.php" autocomplete="on">
尊姓:<input type="text" name="fname"><br>
大名:<input type="text" name="lname"><br>
郵箱:<input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>

效果:

示例效果

屬性描述
autocomplete指定輸入字段是否應啟用自動完成功能。
novalidate禁止瀏覽器對表單進行驗證。
form指定 <input> 元素所屬的表單,使其與特定表單相關聯。
formaction指定在提交表單時使用的 URL。
formenctype指定在提交表單時使用的編碼類型(例如,application/x-www-form-urlencodedmultipart/form-data)。
formmethod指定在提交表單時使用的 HTTP 方法(例如,getpost)。
formnovalidate提交表單時禁用瀏覽器的表單驗證。
formtarget指定在提交表單後打開的目標窗口或框架。
height設置 <input type="image"> 元素的高度。
width設置 <input type="image"> 元素的寬度。
list指定與 <input><textarea> 元素相關聯的 <datalist> 元素的 id。
min指定 <input> 元素的最小值。
max指定 <input> 元素的最大值。
pattern定義在提交表單時驗證輸入字段的正則表達式。
placeholder提供對輸入字段的簡短提示,僅在字段為空時顯示。
required指定輸入字段是否為必填字段。
step指定 <input> 元素的合法數字間隔。

新的 input 類型:

<form action="/submit" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" required />
<br>
<label for="email">電子郵件地址:</label>
<input type="email" id="email" required />
<br>
<label for="birthday">出生日期:</label>
<input type="date" id="birthday" required />
<br>
<label for="phone">電話號碼:</label>
<input type="tel" id="phone" required />
<br>
<input type="submit" value="提交" />
</form>

效果:

示例效果

類型作用
color用於輸入顏色值。
date用於輸入日期值。
datetime-local用於輸入日期和時間值。
email用於輸入電子郵件地址。
file用於上傳文件。
month用於輸入月份值。
number用於輸入數字值。
range用於輸入範圍值。
search用於輸入搜索字符串。
tel用於輸入電話號碼。
time用於輸入時間值。
url用於輸入 URL 地址。

[!小結]

元素作用是否推薦
新增元素
<canvas>定義圖形,比如圖表和其他圖像。 該標籤基於JavaScript 的繪圖API。推薦
<audio>定義音頻內容推薦
<video>定義視頻(video 或者movie)推薦
<source>定義多媒體資源<video><audio>推薦
<track>定義音頻或視頻的字幕或翻譯推薦
<datalist>定義選項列表。 請與input 元素配合使用該元素,來定義input 可能的值。推薦
<keygen>規定用於表單的密鑰對生成器字段。推薦
<output>定義不同類型的輸出,比如腳本的輸出。推薦
<article>定義頁面獨立的內容區域。推薦
<aside>定義頁面的側邊欄內容。推薦
<bdi>允許您設置一段文本,使其脫離其父元素的文本方向設置。推薦
<dialog>定義對話框。推薦
<figure>定義包含圖像或其他可視內容的區域。推薦
<footer>定義頁面或部分頁面的底部區域。推薦
<header>定義頁面或部分頁面的頭部區域。推薦
<main>定義頁面的主要內容區域。推薦
<mark>定義重要或突出顯示的文本。推薦
<meter>定義進度或值範圍。推薦
<nav>定義頁面或部分頁面的導航區域。推薦
<progress>定義進度條。推薦
<time>定義日期或時間。推薦
<wbr>允許在文本中插入可斷行的字符。推薦
已棄用或不推薦元素
<acronym>定義首字母縮寫詞。 建議使用 <abbr> 元素代替。推薦
<applet>定義Java 小程序。 建議使用JavaScript 或其他現代技術代替。不推薦
<basefont>設置頁面中所有文本的默認字體大小和顏色。 建議使用CSS 來設置文本樣式。不推薦
<big>設置文本的字體大小。 建議使用CSS 來設置文本樣式。不推薦
<center>強制文本居中對齊。 建議使用CSS 來設置文本對齊方式。不推薦
<dir>定義目錄列表。 建議使用 <ul> 元素代替。不推薦
<font>設置文本的字體大小、顏色、樣式等。 建議使用CSS 來設置文本樣式。不推薦
<frame>定義框架。 建議使用iframe 元素代替。不推薦
<frameset>定義框架集。 建議使用iframe 元素代替。不推薦
<noframes>為不支持框架的瀏覽器提供替代內容。 建議使用JavaScript 來判斷瀏覽器是否支持框架,並根據情況顯示或隱藏內容。不推薦
<strike>設置文本的刪除線。 建議使用CSS 來設置文本樣式。不推薦
<tt>設置文本的等寬字體。 建議使用CSS 來設置文本字體。不推薦
分享:

評論