前端學習筆記--HTML篇(一)
簡介
一看到HTML就想到它的中文意思超文字標記語言,那麼它和我們接觸過的其他程式語言有什麼不一樣呢?比如C、Java、python等等。其實答案就在字面意思上,它是一種標記語言,並非程式語言。它是一種用於建立網頁的標準標記語言。
歷史
看完基本介紹,那HTML怎麼來的呢?我們一起來翻閱一下歷史
HTML1.0–HTML4.0
從HTML1.0到HTML4.0,HTML一直是SGML(標準通用標記語言)的一個應用,說到SGML不得不說一下DTD(文件型別定義)了,我們先看一下HTML4文件型別宣告
大家可以用瀏覽器開啟http://www.w3.org/TR/html4/strict.dtd看看裡面的介紹,裡面包含了整個HTML4的定義。其中由以下幾行
This version of the frameset DTD is: http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd Use the following (relative) URIs to refer to the DTDs and entity definitions of this specification: "strict.dtd" "loose.dtd" "frameset.dtd" "HTMLlat1.ent" "HTMLsymbol.ent" "HTMLspecial.ent"
翻譯過來就是HTML4.0的DTD規範和定義的實體,我們可以看一下三個定義的實體,分別點選以下三個連結
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLlat1.ent
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLsymbol.ent
- http://www.w3.org/TR/1999/REC-html401-19991224/HTMLspecial.ent
會下載這三個實體的檔案,我們用編輯器開啟HTMLlat1.ent
可以看到常見的nbsp
定義
<!ENTITY nbsp CDATA "  " -- no-break space = non-breaking space,U+00A0 ISOnum -->
我們繼續看HTMLsymbol.ent
,可以發現一些字元的定義。比如Ω
、α
和β
,定義如下
<!ENTITY Omega CDATA "Ω" -- greek capital letter omega,
U+03A9 ISOgrk3 -->
<!ENTITY alpha CDATA "α" -- greek small letter alpha,
U+03B1 ISOgrk3 -->
<!ENTITY beta CDATA "β" -- greek small letter beta, U+03B2 ISOgrk3 -->
然後就是HTMLspecial.ent
了,可以發現一些常用的字元轉譯。比如&
、<
和 >
,定義如下
<!ENTITY amp CDATA "&" -- ampersand, U+0026 ISOnum -->
<!ENTITY lt CDATA "<" -- less-than sign, U+003C ISOnum -->
<!ENTITY gt CDATA ">" -- greater-than sign, U+003E ISOnum -->
這些字元大家可以這樣使用,我這裡就拿lt
舉例了,寫法如下
<p><</p>
大家可以新建個.html檔案然後在瀏覽器開啟這個檔案,就會看到<
了。
以上就是HTML4.0(包含HTML4.0)以前的定義了。
XHTML
我們再回過頭來看一下XHTML,中文意思就是可拓展超文字標記語言,與HTML一樣屬於標記語言,表現形式與HMTL類似,不過語法更加嚴格。XHTML基於XML,而XML又是SGML的一個子集,所以它也有DTD,以下是XHTML的DTD,大家可以瀏覽器開啟看一下
https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
我們會看到這一行
This is XHTML, a reformulation of HTML as a modular XML application.
說的是將HTML重製成模組化XML程式,也就驗證了XHTML是XML的一個子集。
HTML與XHTML的區別
那麼XHTML與HTML有啥區別呢?為啥說與HTML類似但是語法更嚴格了呢?XHTML與HTML區別有以下幾點:
-
XHTML必須宣告
<!DOCTYPE>
-
XHTML的xmlns屬性必須在
<html>
裡 -
XHTML必須包含
<html>
,<head>
,<title>
和<body>
-
XHTML元素必須是巢狀的,比如
<b><i>文字<i><b>
-
XHTML元素必須有閉合標籤,比如
<p>文字</p>
-
XHTML元素標籤必須小寫
-
XHTML屬性名必須小寫
-
XHTML屬性值必須有引號
-
XHTML屬性必須包含屬性名和屬性值
以上都是XHTML的特有的,HTML其實都沒有要求這麼嚴格的。