一、前言
相信大家都熟悉通過字元實體   來實作多個連續空格的輸入吧!本文打算對三類html實體及js相關操作作進一步的整理和小結,若有纰漏請大家指正,謝謝。
二、初識html實體
由于html中某些字元是預留的(如>和<等),若要在進行html解析出來後能正确顯示預留字元,則需要使用字元實體來代替了。
字元實體有三種表示方式:
按 ctrl+c 複制代碼
實體名好處是便于記憶,但不一定所有浏覽器能識别所有實體名。
而所有浏覽器均能識别所有的實體編号。
注意:實體名是大小寫敏感的哦!
三、3種實體類型
&nbsp; ,不是space鍵産生的空格。寬度受到字型的
影響。代表non-breaking
space(不間斷空白),嚴格語義上是使用場景不希望自動換行時使用,但浏覽器會合并多個半角空格(\u0020,由space鍵産生的空格),是以我
們習慣用&nbsp(unicode為\u00a0)來描述多個空格。
&ensp; ,1/2個中文字元寬度,且寬度不受字型的影響。
&emsp; ,1個中文字元寬度,且寬度不受字型的影響。
題外話:全角空格的unicode為\u3000。
四、通過outerhtml,innerhtml,innertext,textcontent和value操作實體
首先我們需要将3種實體類型分成兩類,ascii實體為一類,字元實體和符号實體為一類。
對于ascii實體
1. 非表單元素的outerhtml和innerhtml隻能擷取實體名或實體編号;
2. ie/chrome下非表單元素的innertext可擷取對應的字元;
3. ie9+/ff/chrome的非表單元素的textcontent可擷取對應的字元;
4. textarea的value可擷取對應的字元。
對于字元實體和符号實體
隻能擷取對應的字元,無法直接擷取實體名和實體編号。
五、總結
若有纰漏請大家指正,謝謝。