HTML5與HTML4的區別

来源:https://www.cnblogs.com/zmlljx/archive/2020/01/19/12215028.html
-Advertisement-
Play Games

HTML5和HTML4在基本語法上的區別? 1. 內容類型(ContentType) HTML5中的文件擴展符仍然為".html" 或 ".htm",內容類型仍然為"text/html"。 2. DOCTYPE聲明 HTML4: <!DOCTYPE html PUBLIC "-//W3C//DTD ...


HTML5和HTML4在基本語法上的區別?

1. 內容類型(ContentType)

       HTML5中的文件擴展符仍然為".html" 或 ".htm",內容類型仍然為"text/html"。

2. DOCTYPE聲明

HTML4:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://wwww.w3.org/TR/xhtml1-transitional.dtd">

HTML5:

<!DOCTYPE html>
//當使用工具時,也可以在DOCTYPE聲明方式中加入SYSSTEM識別符,聲明方法如下:
<!DOCTYPE HTML SYSTEM "about:legacy-compat">

3. 指定的字元編碼

 HTML4中使用meta元素的形式指定文件中的字元編碼,如下所示:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

 HTML5中,可以使用<meta>元素直接追加charsetd屬性的方式來指定字元編碼,如下所示:

<meta charset="UTF-8">

這2種方式都有效,也可以用前一種方式,但是不能同時混用,下麵這種方式是錯誤的。

<meta charset="UTF-8" http-equiv="Content-Type" content="text/html;charset=UTF-8">

HTML5中新增元素

新增與結構相關的元素

section元素表示頁面中一個內容區塊,<section>...</section>,HTML4中代碼示例<div>...</div>。

article元素表示頁面中一塊與上下文不相關的獨立內容,<article>...</article>,HTML4中代碼示例<div>...</div>。

aside元素表示article元素的內容之外的、與article元素的內容相關的輔助信息。<aside>...</aside>,HTML4中代碼示例<div>...</div>。

header元素表示頁面中一個內容區塊或整個頁面的標題。<header>...</header>,HTML4中代碼示例<div>...</div>。

hgroup元素用於對整個頁面或頁面中一個內容區塊的標題進行組合。<hgroup></hgroup>,HTML4中代碼示例<div>...</div>。

footer元素表示整個頁面或頁面中一個內容區塊的腳註。一般來說,它會包含創作者的姓名、創作日期以及創作者聯繫信息。<footer></footer>,HTML4中代碼示例<div>...</div>。

nav元素表示頁面中導航鏈接的部分,<nav></nav>,HTML4中代碼示例<ul>...</ul>。

figure元素表示一段獨立的流內容,一般表示文檔主體流內容的一個獨立單元,使用figcaption元素為figure元素添加標題。

<figure>
<figcaption>/...</figucaption>
<p>...</p>
</figure>

//HTML4中的代碼示例

<dl>
<h1>...</h1>
<p>...</p>
</dl>

其他元素

video元素,定義視頻,比如電影片段或其他視頻流。

//HTML5中代碼示例

<video src="movie.ogg" controls="controls">video元素</video>


//HTML4中代碼示例

<objext type="video/ogg" data="movie.ogg">
  <param name="src" value="movie.ogg">
</object>

audio元素,audio元素定義音頻,比如音樂或其他音頻流。

//HTML5中代碼示例

<audio src="movie.wav">video元素</audio>


//HTML4中代碼示例

<objext type="application/ogg" data="movie.wav">
  <param name="src" value="movie.wav">
</object>

embed元素, embed元素用來插入各種多媒體,格式可以是Midi、Wav、AIFF、AU、MP3等。

//HTML5中代碼示例

<embed src="movie.wav" />


//HTML4中代碼示例

<objext type="application/x-shockwave-flash" data="movie.wav"></object>

mark元素主要用來在視覺上向用戶呈現那些需要突出顯示或高亮顯示的文字。典型就是在搜索結果中向用戶高亮顯示搜索關鍵詞。

//HTML5中的代碼示例

<mark></mark>


//HTML4中的代碼示例

<span></span>

progress元素,progress元素表示運行中的進程,可以使用progress元素來顯示javascript中耗費時間的函數進程。<meter></meter> ,這是HTML5中新增功能,HTML4中代碼無法實現。

time元素,time元素表示日期或時間,同時可以表示兩者。

//HTML5中的代碼示例

<time></time>


//HTML4中的代碼示例

<span></span>

ruby元素,ruby元素表示 ruby註釋(中文註音或字元),這也是HTML5中新增的功能。

<ruby><rt><rp>(</rp>...<rp>)</rp></rt></ruby>

rt元素,rt元素表示字元(中文註音或字元)的解釋或發音。

rp元素,rp元素在ruby註釋中使用,以定義不支持ruby元素的瀏覽器所顯示的內容。

wbr元素,wbr元素表示軟換行。wbr元素與br元素的區別是: br元素表示此處必須換行,而wbr元素的意思是瀏覽器視窗或父級元素的寬度足夠寬時不進行換行,而當寬度不夠時,主動在此處換行。

<p>... <wbr></p>

canvas元素,canvas元素表示圖形, 比如圖標和其他圖像,僅提供畫布,但它把一個繪圖API展現給客戶端javascript,以使腳本想把繪製的東西繪製到這塊畫布上。

//HTML5中的代碼示例

<canvas id="myCanvas" width="200" height="200"> </canvas>


//HTML4中的代碼示例

<object data="inc/exm.svg" type="image/svg/svg+xml" width="200" height="200"></object>

command元素,command元素表示命令按鈕,比如單選按鈕、覆選框或按鈕,這是HTML5中新增的功能。

<command onclick="cut()" label="cut">

details元素,details元素表示用戶要求得到並且可以得到的細節信息。它可以與summary元素配合使用。summary元素提供標題或圖例, 這是HTML5中新增的功能。

<details>
  <summary>HTML 5</summary>
  ...
</details>

datalist元素,datalist元素表示可選數據的列表,與input元素配合使用,可以製作輸出值的下拉列表。這是HTML5中新增的功能。

<datalist></datalist>

datagrid元素,datagrid元素表示可選數據的列表,它以樹形的形式來顯示,這是HTML5中新增的功能。

<datagrid></datagrid>

keygen元素,keygen元素表示生成密鑰,這是HTML5中新增的功能。

<keygen>

output元素,output元素表示不同類型的輸出,比如腳本的輸出。

//HTML5中的代碼示例

<output></output>


//HTML4中的代碼示例

<span></span>

source元素,source元素為媒介元素(比如<video>和<audio>)定義媒介資源。

//HTML5中的代碼示例

<source>


//HTML4中的代碼示例

<param>

menu元素,menu元素表示菜單列表,當希望列出表單空間時使用該標簽,在HTML4中不被推薦使用。

<menu>
  <li><input type="checkbox">RED</li>
  <li><input type="checkbox">blue</li>
</menu>

新增的input元素的類型

        email、url、number、range、Date Pickers

        Date Pickers:

        date(年、月、日)

        month(月、年)

        week(周和年)

        time(時間小時和分鐘)

        datetime(選擇時間、日、月、年(UTC時間))

        datetime-local(選取時間、日、月、年(本地時間))。

HTML5中新增屬性

    表單相關的屬性

                        1. 可以對input(type=text)、select、textarea與button元素指定autofocus屬性。它是以指定屬性的方式讓元素在畫面打開時自動獲得焦點。

                        2. 可以對input(type=text)與textarea元素指定placeholder屬性,它會對用戶的輸入進行提示,提示用戶可以輸入的內容。

                        3. 可以對input(type=text)與textarea元素指定required屬性,該屬性表示在用戶提交的時候進行檢查,檢查該元素內一定要有輸入內容。

                        4. 對input新增的屬性:autocomplete、min、max、multiple、pattern與step。

                        5. 對input和button元素新增新屬性:formaction、formenctype、formmethod、formnovalidate與formtarget。為fieldset元素增加了disabled屬性,可以把它的子元素設為disabled狀態。

                        6. 為input、button、form元素增加了novalidate屬性,該屬性可以取消提交時進行的有關檢查,表單可以被無條件地提交。

    鏈接相關屬性

                        1. 為a與area增加了media屬性,該屬性規定目標URL是什麼類型的媒介/設備進行優化的,在鞥在href屬性存在時使用。

                        2.  為area元素增加了hreflang屬性與rel屬性,以保持與a元素、link元素的一致。

                        3. 為link元素增加了新屬性sizes。

                        4. 為base元素增加了target屬性,主要目的是保持與a元素的一致性。

    其他屬性

                        1. 為ol元素添加reversed,指定列表倒序顯示。

                        2. 為meta元素增加charset屬性。

                        3. 為menu增加 type和label屬性。

                        4. 為style元素增加scoped屬性,用來規定樣式的作用範圍。

                        5. 為script增加async屬性 ,定義腳本是否非同步執行。

                        6. 為html元素增加屬性manifest,開發離線web應用程式時它與其他API結合使用,定義一個URL,在這個URL上描述文檔的緩存信息。

                        7. 為iframe元素增加sandbox、seamless、srcdoc,用來提高頁面安全性,防止不信任的web頁面執行某些操作。

 

幾個常用的全局屬性

    全局屬性

                        全局屬性的概念是HTML5中新增的,是指可以對任何元素都使用的屬性。

    contentEditable

                        contentEditable是一個布爾值屬性,主要功能是允許用戶編輯元素中的內容,所以該元素是可以獲得滑鼠焦點的元素,而且在點擊滑鼠後要向用戶提供一個插入符號,提示該元素中的內容允許編輯。

    designMode

                        designMode屬性有2個值,"on"和"off",用來指定整個頁面是夠可編輯,當頁面編輯時,任何支持上文的contentEditable屬性的元素都變成可編輯狀態。

document.designMode = "on";

    hidden

                        hidden屬性類似於input元素中的hidden元素,功能是通知瀏覽器不渲染該元素,使該元素處於不可見狀態。

    spellcheck

                        spellcheck是HTML5針對input(type=text)與textarea這2個文本輸入框提供的一個新屬性,它對用戶輸入的文本內容進行拼寫和語法檢查。  spellcheck屬性是一個布爾屬性值,特別的是使用這個屬性時必須聲明屬性值為true或false。

                        註意!!! 元素為readOnly屬性或disabled屬性設為true時,不執行拼寫檢查。

    tabindex

                        tabindex是開發中的一個基本概念,當不斷敲擊Tab鍵讓視窗或頁面中的控制項獲得焦點,對視窗或頁面中的所有控制項進行遍歷的時候,每一個控制項的tabindex表示該控制項是第幾個被訪問到的。作用二是在預設情況下,只有鏈接元素與表單元素可以通過按鍵獲得焦點。但是有副作用,腳本中執行focus()語句可以獲得焦點,該元素也可以通過按Tab鍵獲得焦點。所以把元素tabindex值設為負數(-1)。

 

參考資料:

【中】陸凌牛 著  機械工業出版社《HTML5 與 CSS3 權威指南》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • babel:將瀏覽器不支持的ES6語法轉為javascript 查看node是否安裝: npm -v node -v 實例演示:在桌面新建part5目錄在cmd命令行中 cd desktop cd part5 安裝babel:初始化package.json文件:描述當前項目信息,包括依賴等 npm ...
  • Angular 是什麼 Angular(讀音['æŋgjʊlə])是一套用於構建用戶界面的 JavaScript 框架。由 Google 開發和維護,主要被用來開發單頁面應用程式。 類似於 "Vue.js" + MVVM(數據驅動視圖思想) + 組件化 + 模塊化 + 指令 + ...... 由 G ...
  • 目前,無論你使用什麼前端框架,都必然要使用到各種 NodeJS 工具,Angular 也不例外。與其它框架不同,Angular 從一開始就走的“全家桶”式的設計思路,因此 @angular/cli 這款工具裡面集成了日常開發需要使用的所有 Node 模塊,使用 @angular/cli 可以大幅度降 ...
  • ng啟動過程 目錄結構 介紹 文件 main.js 描述:模塊化啟動入口 職責:載入啟動根模塊 AppModule 描述:項目根模塊 職責:把組件、服務、路由、指令等組織到一起,設置啟動組件為根組件 AppComponent 描述:項目根組件 職責:替換掉 文件中的 `` 節點 ...
  • ...
  • Html5學習系列 HTML5 規定了一種通過 video 元素來包含視頻的標準方法 Ogg = 帶有 Theora 視頻編碼和 Vorbis 音頻編碼的 Ogg 文件 MPEG4 = 帶有 H.264 視頻編碼和 AAC 音頻編碼的 MPEG 4 文件 WebM = 帶有 VP8 視頻編碼和 Vo ...
  • 全局事件屬性 HTML 4 的新特性之一是可以使 HTML 事件觸發瀏覽器中的行為,比方說當用戶點擊某個 HTML 元素時啟動一段 JavaScript。 如果你想學習更多關於事件屬性,請訪問 JavaScript 教程 下麵的表格提供了標準的事件屬性,可以把它們插入 HTML/XHTML 元素中, ...
  • 我們在寫asp頁面的時候,常常使用include命令來包含公共文件。由於這個方法用起來非常方便,於是很多人在HTML頁面里嘗試使用include,但是發現根本就不起作用。這是因為,include是VBScript的命令,因此可以在asp頁面里使用。而HTML靜態頁面被調用的時候並不經過asp解釋器, ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...