搜尋
首頁web前端前端問答html5有哪些特性

html5有哪些特性

Dec 01, 2021 pm 02:03 PM
html5特性

html5特性有:1、語意標籤;2、增強型表單輸入類型;3、支援視訊和音訊的播放;4、Canvas繪圖;5、SVG繪圖;6、地理定位;7、拖放API;8、Web Worker;9、Web Storage;10、WebSocket。

html5有哪些特性

本教學操作環境:windows7系統、HTML5版、Dell G3電腦。

HTML5的十大新特性

為了更好地處理今天的網路應用,HTML5增加了許多新元素及功能,例如: 圖形的繪製,多媒體內容,更好的頁面結構,更好的形式處理,和幾個api拖放元素,定位,包括網頁應用程序緩存,存儲,網絡工作者,等

(1)語義標籤

  語意化標籤使得頁面的內容結構化,見名知義

 標籤  描述
   定義了文件的頭部區域
 
footer>
 定義了文件的尾區
# 定義文件的導覽
 
 定義文件中的節(section、區段)
 
< ;/article>
 定義頁面獨立的內容區域
# #定義頁面的側邊欄內容
用來描述文件或文件某個部分的細節
標籤包含details 元素的標題
#定義對話框,例如提示框

(2)增強型表單輸入類型

  HTML5 擁有多個新的表單Input 輸入類型。這些新特性提供了更好的輸入控制和驗證。

##主要用於選取顏色#從一個日期選擇器選擇一個日期選擇日期(UTC 時間)#選擇一個日期和時間(無時區)包含e-mail 位址的輸入域選擇一個月份

輸入類型

描述
##color

date

#datetime

datetime-local

email

month

#number
##數值的輸入域

range

一定範圍內數字值的輸入域

search

用於搜尋網域

tel

#定義輸入電話號碼欄位

#time

選擇一個時間

#url

 URL 位址的輸入域

week

選擇週和年

   HTML5 也新增以下表單元素

表單元素 描述

#

 元素規定輸入域的選項清單

使用 元素的list 屬性與 元素的id 綁定

#
提供驗證使用者的可靠方法#######標籤規定用於表單的金鑰對產生器欄位。 ###############################用於不同類型的輸出#######例如計算或腳本輸出###############

  HTML5 新增的表單屬性

    • placehoder 屬性,簡短的提示在使用者輸入值前會顯示在輸入域上。即我們常見的輸入框預設提示,在使用者輸入後消失。
    • required  屬性,是一個 boolean 屬性。要求填寫的輸入域不能為空
    • pattern 屬性,描述了一個正規表示式用來驗證 元素的值。
    • min 和 max 屬性,設定元素最小值與最大值。
    • step 屬性,為輸入域規定合法的數字間隔。
    • height 和 width 屬性,用於 image 類型的 標籤的圖像高度和寬度。
    • autofocus 屬性,是一個 boolean 屬性。規定在頁面載入時,網域自動地獲得焦點。
    • multiple 屬性 ,是一個 boolean 屬性。規定 元素中可選擇多個值。

(3)視訊和音訊

  • #HTML5 提供了播放音訊檔案的標準,即使用

<audio controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
您的浏览器不支持 audio 元素。
</audio>

 control 屬性供新增播放、暫停和音量控制。

 在 之間你需要插入瀏覽器不支援的

 

目前,

  • #HTML5 規定了一種透過video 元素來包含視訊的標準方法。

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
您的浏览器不支持Video标签。
</video>

control 提供了 播放、暫停和音量控制來控制影片。也可以使用dom操作來控制影片的播放暫停,如 play() 和 pause() 方法。

同時 video 元素也提供了 width 和 height 屬性控制影片的尺寸。如果設定的高度和寬度,所需的影片空間會在頁面載入時保留。如果沒有設定這些屬性,瀏覽器不知道大小的視頻,瀏覽器就不能再加載時保留特定的空間,頁面就會根據原始視頻的大小而改變。

與 標籤之間插入的內容是提供給不支援 video 元素的瀏覽器顯示的。

video 元素支援多個source 元素. 元素可以連結不同的影片檔案。瀏覽器將使用第一個可識別的格式( MP4, WebM, 和Ogg)

#(4)Canvas繪圖

  標籤只是圖形容器,必須使用腳本來繪製圖形。

Canvas - 圖形

1、建立一個畫布,一個畫佈在網頁中是一個矩形框,透過 元素來繪製。預設情況下 元素沒有邊框和內容。

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"></canvas>

  標籤通常需要指定一個id屬性 (腳本中經常引用), width 和 height 屬性定義的畫布的大小,使用 style 屬性來新增邊框。你可以在HTML頁面中使用多個 元素

2、使用Javascript來繪製圖像,canvas 元素本身是沒有繪圖能力的。所有的繪製工作必須在 JavaScript 內部完成

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

  getContext("2d") 物件是內建的 HTML5 對象,擁有多種繪製路徑、矩形、圓形、字元以及新增圖像的方法。

  設定 fillStyle 屬性可以是CSS顏色,漸變,或圖案。 fillStyle預設值是#000000(黑色)。 fillRect(x,y,width,height) 方法定義了矩形目前的填滿方式。意思是:在畫布上繪製 150x75 的矩形,從左上角開始 (0,0)。

Canvas - 路徑

##在Canvas上畫線,我們將使用以下兩種方法:

  • moveTo(x ,y) 定義線條開始座標

  • lineTo(x,y) 定義線條結束座標

繪製線條我們必須使用到"ink"的方法,就像stroke()。

<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.moveTo(0,0);
    ctx.lineTo(200,100);
    ctx.stroke();
</script>

定義開始座標(0,0), 和結束座標(200,100). 然後使用stroke() 方法來繪製線條

Canvas - 文字

使用canvas 繪製文本,重要的屬性和方法如下:

  • font - 定義字體

  • fillText(text,x,y ) - 在canvas 上繪製實心的文字

  • strokeText(text,x,y) - 在canvas 上繪製空心的文字

使用fillText():

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.fillText("Hello World",10,50);

  使用"Arial" 字型在畫布上繪製一個高30px 的文字(實心)

Canvas - 漸層

#漸變可以填滿在矩形, 圓形, 線條, 文字等等, 各種形狀可以自己定義不同的顏色。

以下有兩種不同的方式來設定Canvas漸層:

  • createLinearGradient(x,y,x1,y1) - 建立線條漸層

  • createRadialGradient(x,y,r,x1,y1,r1) - 建立一個徑向/圓漸層

当我们使用渐变对象,必须使用两种或两种以上的停止颜色。

addColorStop()方法指定颜色停止,参数使用坐标来描述,可以是0至1.

使用渐变,设置fillStyle或strokeStyle的值为渐变,然后绘制形状,如矩形,文本,或一条线。

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

// Create gradient
var grd=ctx.createLinearGradient(0,0,200,0);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");

// Fill with gradient
ctx.fillStyle=grd;
ctx.fillRect(10,10,150,80);

  创建了一个线性渐变,使用渐变填充矩形

Canvas - 图像

  把一幅图像放置到画布上, 使用 drawImage(image,x,y) 方法

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10);

  把一幅图像放置到了画布上

(5)SVG绘图

  SVG是指可伸缩的矢量图形

SVG 与 Canvas两者间的区别

  SVG 是一种使用 XML 描述 2D 图形的语言。

  Canvas 通过 JavaScript 来绘制 2D 图形。

  SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

  在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

  Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

(6)地理定位

  HTML5 Geolocation(地理定位)用于定位用户的位置。

window.navigator.geolocation {
    getCurrentPosition:  fn  用于获取当前的位置数据
    watchPosition: fn  监视用户位置的改变
    clearWatch: fn  清除定位监视
} 

  获取用户定位信息:

navigator.geolocation.getCurrentPosition(
    function(pos){
    console.log(&#39;用户定位数据获取成功&#39;)
    //console.log(arguments);
    console.log(&#39;定位时间:&#39;,pos.timestamp)
    console.log(&#39;经度:&#39;,pos.coords.longitude)
    console.log(&#39;纬度:&#39;,pos.coords.latitude)
    console.log(&#39;海拔:&#39;,pos.coords.altitude)
    console.log(&#39;速度:&#39;,pos.coords.speed)

},    //定位成功的回调
function(err){ 
    console.log(&#39;用户定位数据获取失败&#39;)
    //console.log(arguments);

}        //定位失败的回调
)

(7)拖放API

  拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

  拖放的过程分为源对象和目标对象。源对象是指你即将拖动元素,而目标对象则是指拖动之后要放置的目标位置。

拖放的源对象(可能发生移动的)可以触发的事件——3个:

  • dragstart:拖动开始

  • drag:拖动中

  • dragend:拖动结束

整个拖动过程的组成: dragstart*1 + drag*n + dragend*1

拖放的目标对象(不会发生移动)可以触发的事件——4个:

  • dragenter:拖动着进入

  • dragover:拖动着悬停

  • dragleave:拖动着离开

  • drop:释放

整个拖动过程的组成1: dragenter*1 + dragover*n + dragleave*1

整个拖动过程的组成2: dragenter*1 + dragover*n + drop*1

  • dataTransfer:用于数据传递的“拖拉机”对象;

在拖动源对象事件中使用e.dataTransfer属性保存数据:

e.dataTransfer.setData( k,  v )

在拖动目标对象事件中使用e.dataTransfer属性读取数据:

var value = e.dataTransfer.getData( k )

(8)Web Worker

  当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。

  web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。

  首先检测浏览器是否支持 Web Worker

 if(typeof(Worker)!=="undefined"){
   // 是的! Web worker 支持!
   // 一些代码.....
   }else{
   // //抱歉! Web Worker 不支持
   }

  下面的代码检测是否存在 worker,如果不存在,- 它会创建一个新的 web worker 对象,然后运行 "demo_workers.js" 中的代码

 if(typeof(w)=="undefined")
   {
   w=new Worker("demo_workers.js");
   }

  然后我们就可以从 web worker 发送和接收消息了。向 web worker 添加一个 "onmessage" 事件监听器:

 w.onmessage=function(event){
 document.getElementById("result").innerHTML=event.data;
 };

  当 web worker 传递消息时,会执行事件监听器中的代码。event.data 中存有来自 event.data 的数据。当我们创建 web worker 对象后,它会继续监听消息(即使在外部脚本完成之后)直到其被终止为止。

如需终止 web worker,并释放浏览器/计算机资源,使用 terminate() 方法。

完整的 Web Worker 实例代码

<!DOCTYPE html>
<html>
<body>

<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button> 
<button onclick="stopWorker()">Stop Worker</button>
<br><br>

<script>var w;function startWorker()
{if(typeof(Worker)!=="undefined")
{  if(typeof(w)=="undefined")
    {
    w=new Worker("demo_workers.js");
    }
  w.onmessage = function (event) {
    document.getElementById("result").innerHTML=event.data;
  };
}else{
document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers...";
}
}function stopWorker()
{ 
w.terminate();
}</script>

</body>
</html>

  创建的计数脚本,该脚本存储于 "demo_workers.js" 文件中

var i=0;

 function timedCount()
 {
 i=i+1;
 postMessage(i);
 setTimeout("timedCount()",500);
 }

 timedCount();

(9)Web Storage

  使用HTML5可以在本地存储用户的浏览数据。早些时候,本地存储使用的是cookies。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能。数据以 键/值 对存在, web网页的数据只允许该网页访问使用。

客户端存储数据的两个对象为:

  • localStorage - 没有时间限制的数据存储

  • sessionStorage - 针对一个 session 的数据存储, 当用户关闭浏览器窗口后,数据会被删除。

  在使用 web 存储前,应检查浏览器是否支持 localStorage 和sessionStorage

if(typeof(Storage)!=="undefined")
   {
   // 是的! 支持 localStorage  sessionStorage 对象!
   // 一些代码.....
   }
 else
   {
   // 抱歉! 不支持 web 存储。
   }

  不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

    • 保存数据:localStorage.setItem(key,value);
    • 读取数据:localStorage.getItem(key);
    • 删除单个数据:localStorage.removeItem(key);
    • 删除所有数据:localStorage.clear();
    • 得到某个索引的key:localStorage.key(index);

(10)WebSocket

  WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。

<!DOCTYPE HTML>
<html>
   <head>
   <meta charset="utf-8">
   <title>W3Cschool教程(w3cschool.cn)</title>
    
      <script type="text/javascript">
         function WebSocketTest()
         {
            if ("WebSocket" in window)
            {
               alert("您的浏览器支持 WebSocket!");
               
               // 打开一个 web socket
               var ws = new WebSocket("ws://localhost:9998/echo");
                
               ws.onopen = function()
               {
                  // Web Socket 已连接上,使用 send() 方法发送数据
                  ws.send("发送数据");
                  alert("数据发送中...");
               };
                
               ws.onmessage = function (evt) 
               { 
                  var received_msg = evt.data;
                  alert("数据已接收...");
               };
                
               ws.onclose = function()
               { 
                  // 关闭 websocket
                  alert("连接已关闭..."); 
               };
            }
            
            else
            {
               // 浏览器不支持 WebSocket
               alert("您的浏览器不支持 WebSocket!");
            }
         }
      </script>
        
   </head>
   <body>
   
      <div id="sse">
         <a href="javascript:WebSocketTest()">运行 WebSocket</a>
      </div>
      
   </body>
</html>

推荐教程:《html视频教程

以上是html5有哪些特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML和React:標記與組件之間的關係HTML和React:標記與組件之間的關係Apr 12, 2025 am 12:03 AM

HTML和React的關係是前端開發的核心,它們共同構建現代Web應用的用戶界面。 1)HTML定義內容結構和語義,React通過組件化構建動態界面。 2)React組件使用JSX語法嵌入HTML,實現智能渲染。 3)組件生命週期管理HTML渲染,根據狀態和屬性動態更新。 4)使用組件優化HTML結構,提高可維護性。 5)性能優化包括避免不必要渲染,使用key屬性,保持組件單一職責。

反應與前端:建立互動體驗反應與前端:建立互動體驗Apr 11, 2025 am 12:02 AM

React是構建交互式前端體驗的首選工具。 1)React通過組件化和虛擬DOM簡化UI開發。 2)組件分為函數組件和類組件,函數組件更簡潔,類組件提供更多生命週期方法。 3)React的工作原理依賴虛擬DOM和調和算法,提高性能。 4)狀態管理使用useState或this.state,生命週期方法如componentDidMount用於特定邏輯。 5)基本用法包括創建組件和管理狀態,高級用法涉及自定義鉤子和性能優化。 6)常見錯誤包括狀態更新不當和性能問題,調試技巧包括使用ReactDevTools和優

React和前端堆棧:工具和技術React和前端堆棧:工具和技術Apr 10, 2025 am 09:34 AM

React是一個用於構建用戶界面的JavaScript庫,其核心是組件化和狀態管理。 1)通過組件化和狀態管理簡化UI開發。 2)工作原理包括調和和渲染,優化可通過React.memo和useMemo實現。 3)基本用法是創建並渲染組件,高級用法包括使用Hooks和ContextAPI。 4)常見錯誤如狀態更新不當,可使用ReactDevTools調試。 5)性能優化包括使用React.memo、虛擬化列表和CodeSplitting,保持代碼可讀性和可維護性是最佳實踐。

React在HTML中的作用:增強用戶體驗React在HTML中的作用:增強用戶體驗Apr 09, 2025 am 12:11 AM

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

REACT組件:在HTML中創建可重複使用的元素REACT組件:在HTML中創建可重複使用的元素Apr 08, 2025 pm 05:53 PM

React組件可以通過函數或類定義,封裝UI邏輯並通過props接受輸入數據。 1)定義組件:使用函數或類,返回React元素。 2)渲染組件:React調用render方法或執行函數組件。 3)復用組件:通過props傳遞數據,構建複雜UI。組件的生命週期方法允許在不同階段執行邏輯,提升開發效率和代碼可維護性。

反應嚴格模式目的反應嚴格模式目的Apr 02, 2025 pm 05:51 PM

React嚴格模式是一種開發工具,可通過激活其他檢查和警告來突出反應應用中的潛在問題。它有助於識別遺產代碼,不安全的生命週期和副作用,鼓勵現代反應實踐。

反應碎片使用反應碎片使用Apr 02, 2025 pm 05:50 PM

React片段允許將兒童分組而沒有額外的DOM節點,增強結構,性能和可訪問性。他們支持鑰匙以進行有效的列表渲染。

反應和解過程反應和解過程Apr 02, 2025 pm 05:49 PM

本文討論了React的對帳過程,詳細介紹了它如何有效地更新DOM。關鍵步驟包括觸發對帳,創建虛擬DOM,使用擴散算法以及應用最小的DOM更新。它還覆蓋了經家

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器