htnl5與html4的區別

2022-08-16 17:30:17 字數 3616 閱讀 7740

html 5以html 4為基礎,對html 4進行了大量修改。本章從總體上概要介紹html 5對html 4進行了哪些修改,html 5與html 4之間比較大的區別是什麼地方。

【學習內容】

掌握html 5與html 4在基本語法上的區別,這個基本語法區別包括doctype宣告、內容型別(contenttype)、字元編碼的指定方法、元素標記的省略、具有布林值的屬性、引號的省略等幾個方面。

了解在html 5中新增的元素,刪除了哪些html 4中的元素,以及為什麼要刪除這些元素,用什麼元素或方法來取代這些被刪除的元素。

了解在html 5中新增的屬性,刪除了哪些html 4中的屬性,在html 5中用什麼方法來取代這些被刪除的屬性。

掌握什麼是全域性屬性,本章主要介紹幾個常用全域性屬性,如contenteditable屬性、designmode屬性、hidden屬性、spellcheck屬性以及tabindex屬性。

1 語法的改變

1.1 html 5的語法變化

與html 4相比,html 5在語法上發生了很大的變化。可能很多人會因為「之前的html已經相當普及」,「如果改變基礎語法,會產生什麼影響」等想法而感到不安。

但是,html 5中的語法變化,與其他開發語言中的語法變化在根本意義上有所不同。它的變化,正是因為在html 5之前幾乎沒有符合標準規範的web瀏覽器導致的。

html的語法是在sgml(standard generalized markup language)語言的基礎上建立起來的。但是sgml語法非常複雜,要開發能夠解析sgml語法的程式也很不容易,因此很多瀏覽器都不包含sgml的分析器。因此,雖然html基本上遵從sgml的語法,但是對於html的執行在各瀏覽器之間並沒有乙個統一的標準。

在這種情況下,各瀏覽器之間的互相容性和互操作性在很大程度上取決於**或網路應用程式的開發者在開發上所做的共同努力,而瀏覽器本身始終是存在缺陷的。

如上所述,在html 5中提高web瀏覽器之間的相容性是它的乙個很大的目標,為了確保相容性,就要有乙個統一的標準。因此,在html 5中,圍繞著這個web標準,重新定義了一套在現有html的基礎上修改而來的語法,以便各瀏覽器在執行html的時候能夠符合乙個通用標準。

因為關於html 5語法解析的演算法也都提供了詳細的記載,所以各web瀏覽器的**商可以把html 5分析器集中封裝在自己的瀏覽器中。最新的firefox(預設為4.0以後的版本)與webkit瀏覽器引擎中都迅速地封裝了供html 5使用的分析器,ie(internet explorer)與opera也在努力加快對html 5的支援——提高瀏

覽器的相容性指日可待。

接下來,讓我們具體看一下在html 5中對語法進行了哪些改變。

2.1.2 html 5中的標記方法

首先看一下html 5中的標記方法。

1.內容型別(contenttype)

首先,html 5的檔案擴充套件符與內容型別保持不變。也就是說,擴充套件符仍然為「.html」或「.htm」,內容型別(contenttype)仍然為「text/html」。

2.doctype宣告

doctype宣告是html檔案中必不可少的,它位於檔案第一行。在html 4中,它的宣告方法如下:

在html 5中,刻意不使用版本宣告,乙份文件將會適用所有版本的html。html 5中的doctype宣告方法(不區分大小寫)如下:

另外,當使用工具時,也可以在doctype宣告方式中加入system識別符,宣告方法如下:

在html 5中像這樣的doctype宣告方式是允許的(不區分大小寫,引號不區分是單引號還是雙引號)。

3.指定字元編碼

在html 4中,使用meta元素的形式指定檔案中的字元編碼,如下所示:

在html 5中,可以使用對元素直接追加charset屬性的方式來指定字元編碼,如下所示:

兩種方法都有效,可以繼續使用前面一種方式(通過content元素的屬性來指定),但是不能同時混合使用兩種方式。在以前的****中可能會存在下面**所示的標記方式,但在html 5中,這種字元編碼方式將被認為是錯誤的,這一點請注意。

從html 5開始,對於檔案的字元編碼推薦使用utf-8。

2.1.3 html 5確保的相容性

html 5的語法是為了保證與之前的html語法也能夠達到最大程度的相容而設計的。例如,符合「沒有的結束標記」的html**隨處可見,html 5中並沒有把這種情況作為錯誤來處理,而是允許存在這種情況,但明確規定了這種情況應該怎麼處理。

那麼,針對這個問題,我們從元素標記的省略、具有boolean值的屬性、引號的省略這幾方面來詳細看一下在html 5中是如何確保與之前版本的html實現相容的。

1.可以省略標記的元素

在html 5中,元素的標記可以省略。具體來說,分為「不允許寫結束標記」、「可以省略結束標記」和「開始標記和結束標記全部可以省略」三種型別。

接著,我們針對這三類情況列舉乙個元素清單,其中包括本書到現在為止還沒有介紹的html 5中的新元素(關於這些新元素,2.2節將進行介紹)。

不允許寫結束標記的元素有:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr。

可以省略結束標記的元素有:li、dt、dd、p、rt、rp、optgroup、option、colgroup、thead、tbody、tfoot、tr、td、th。

可以省略全部標記的元素有:html、head、body、colgroup、tbody。

說明 「不允許寫結束標記的元素」是指不允許使用開始標記與結束標記將元素括起來的形式,只允許使用「《元素/>」的形式進行書寫。例如「

...」的書寫方式是錯誤的,只允許「

」的書寫形式。當然,html 5之前的

這種寫法可以被沿用。

可以省略全部標記的元素」是指該元素可以完全被省略。注意,即使標記被省略了,該元素還是以隱式的方式存在的。例如省略不寫body元素時,在文件結構中它還是存在的,可以使用document.body訪問。

2.具有boolean值的屬性

對於具有boolean值的屬性,例如disabled與readonly等,當只寫屬性而不指定屬性值時,表示屬性值為true,如果想要將屬性值設為false,則可以不使用該屬性。另外,要想將屬性值設定為true時,也可以將屬性名設定為屬性值,或將空字串設定為屬性值。

屬性值的設定方法可以參考下面的**示例:

3.省略引號

大家已經知道,在指定屬性值的時候,屬性值兩邊加引號時既可以用雙引號,也可以用單引號。

html 5在此基礎上做了一些改進,當屬性值不包括空字元

串、「」、「=」、單引號、雙引號等字元時,屬性值兩邊的引號可以省略。如下面的**所示:

2.1.4 標記示例

現在,我們通過前面學到的html 5的語法知識來看乙個關於html 5標記的示例。

**清單2-1完全是用html 5寫成的。其中省略了、、等元素。可以通過這個示例複習一下html 5的doctype宣告、用元素的charset屬性指定字元編碼、元素的結束標記的省略、使用《元素/>的方式來結束元素,以及

元素等本節中所介紹的知識要點。

html 5標誌示例

html 5標識示例

這段**是根據html 5語法

編寫的。

HTML5與HTML4的區別

掌握html5 與html4 在基本語法上的區別,這個基本語法區別包括 doctype 申明,內容型別,字元編碼的指定方式,元素標記的省略,具有布林型別值得屬性,引號的省略等 了解新增的元素,刪除了哪些元素,為什麼要刪除這些元素,用什麼元素或者方法來取代這些刪除的元素 新增了那些屬性,刪除了那些屬性...

HTML4與HTML5的區別

1.定義上的區別 html5是應用超文字標記語言 html 的第五次修改,html4是應用超文字標記語言 html 的第四次修改,他們分別是html語言的第5和第4版本,html4是為了適應pc時代產生的,html5是為了移動網際網路時代產生的。他們都是w3c world wide web 推薦的標...

html5 xhtml與html4的區別

學習平台 知乎,菜鳥教程,csdn,xhtml的形成 早期html不是很規範,頁面不是很規範,於是w3c結合xml來制定xhtml1.0的規範。通過mimetype強行檢查錯誤,xhtml2.0也是這樣 於是沒有人採用 他是通過先有標準再來實現頁面,是可不行的 xhtml 可擴充套件超文字標記語言,...