一、前言
相信大家都熟悉通过字符实体   来实现多个连续空格的输入吧!本文打算对三类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可获取对应的字符。
对于字符实体和符号实体
只能获取对应的字符,无法直接获取实体名和实体编号。
五、总结
若有纰漏请大家指正,谢谢。