1. 程式人生 > 其它 >前端學習筆記--HTML篇(一)

前端學習筆記--HTML篇(一)

技術標籤:前端html前端

簡介​

一看到HTML就想到它的中文意思超文字標記語言,那麼它和我們接觸過的其他程式語言有什麼不一樣呢?比如C、Java、python等等。其實答案就在字面意思上,它是一種標記語言,並非程式語言。它是一種用於建立網頁的標準標記語言。

歷史

看完基本介紹,那HTML怎麼來的呢?我們一起來翻閱一下歷史
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規範和定義的實體,我們可以看一下三個定義的實體,分別點選以下三個連結

會下載這三個實體的檔案,我們用編輯器開啟HTMLlat1.ent可以看到常見的nbsp定義

<!ENTITY nbsp   CDATA "&#160;
" -- no-break space = non-breaking space,U+00A0 ISOnum -->

我們繼續看HTMLsymbol.ent,可以發現一些字元的定義。比如Ωαβ,定義如下

<!ENTITY Omega    CDATA "&#937;" -- greek capital letter omega,
                                    U+03A9 ISOgrk3 --><!ENTITY alpha    CDATA "&#945;" -- greek small letter alpha,
                                    U+03B1 ISOgrk3 -->
<!ENTITY beta     CDATA "&#946;" -- greek small letter beta, U+03B2 ISOgrk3 -->

然後就是HTMLspecial.ent了,可以發現一些常用的字元轉譯。比如&<> ,定義如下

<!ENTITY amp     CDATA "&#38;"   -- ampersand, U+0026 ISOnum -->
<!ENTITY lt      CDATA "&#60;"   -- less-than sign, U+003C ISOnum -->
<!ENTITY gt      CDATA "&#62;"   -- greater-than sign, U+003E ISOnum -->

這些字元大家可以這樣使用,我這裡就拿lt舉例了,寫法如下

<p>&lt;</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其實都沒有要求這麼嚴格的。
公眾號