HTML Entity 是什麼
HTML Entity 是一段字符串組成的文本,以 “&” 符號開頭,以 “;” 結尾,
誕生原因
一些字符在 HTML 中是預留的,擁有特殊的含義,比如小於號 < 用於定義 HTML 標籤的開始。如果我們希望瀏覽器正確地顯示這些字符,我們必須在 HTML 源碼中插入字符實體。
用途
- 顯示 HTML 保留字符,如 <、>、&、 " 等(聯想到防禦 XSS 攻擊);
- 表示難以用常規輸入設備輸入的字符,如 ©、®、± 等;
- 表示給定的字符編碼可能無法表達文檔字符集的其他字符,如 ASCII 編碼想想顯示中文,使用
水
表示 “水”;
表示形式
數字字符引用
數字字符引用指定文檔字符集中字符的代碼位置。數字字符引用又可以採用兩種形式:
- 語法
&#d
,其中,d 是十進制數,表示字符在ISO 10646
以十進制表示的位置中 d 處的字符。 - 語法
&#xH
,其中,x 表示後續內容爲十進制數,H 表示字符在ISO 10646
以十六進制表示的位置中 H 處的字符,數字字符引用中的十六進制數字不區分大小寫。
字符實體引用
由於使用數字字符引用還需要記住字符在字符集中位置,使用較爲不便,因此 HTML 還提供了“字符實體引用”的方式表示字符,如用 <
(less than) 表示 < ,此形式更易讀易記,但 HTML 顯然沒有爲ISO 10646
中的數十萬個字符都定義了字符實體,完整列表見Named character references,字符實體引用對大小寫敏感。
擴展
ASCII、 Unicode、UTF-8、HTML Entities 的關係
定義: 不換行空格(no-break space)是空格字符,用途是禁止自動換行。HTML頁面顯示時會自動合併多個連續的空白字符(whitespace character),但該字符是禁止合併的,因此該字符也稱作“硬空格”。
寬度: 單個寬度與 space 的空格一致,受字體影響,不同瀏覽器下表現也不一致,在 chrome 的 PingFang SC
字體下佔 1.3em
。
在 html 中輸入多個空格
除使用
外,還可通過設置內容 css 的 white-space
屬性值爲 pre
,如此瀏覽器會保留文本中的空格和換行,就可以在文本中直接使用鍵盤的 space 輸入多個空格了。
其他空格
-   全稱爲半角空格(En Space),寬度爲
1/2em
。 -   全稱爲全角空格(Em Space),寬度爲
1em
。 -   全稱爲窄空格(Thin Space),寬度爲
1/5em
,此三者寬度幾乎不受字體影響。 - ‌ 全稱爲零寬不連字符(Zero Width Non Joiner),顧名思義沒有寬度,用於抑制本來會發生的連字。
- ‍ 全稱爲零寬連字符(Zero Width Joiner),沒有寬度,用於在兩個本不會發生連字的字符產生連字效果。