# html 字符实体 - 空格
今日看到html字符实体中的空格部分,原以为nbsp只是普通空格符的等价映射,结果发现空格字符也别有洞天。
# 定义
https://www.w3.org/TR/html401/sgml/entities.html
<!ENTITY nbsp CDATA "&#160;" -- no-break space = non-breaking space, U+00A0 ISOnum -__->
从w3的定义上看,nbsp是"非折行空格符",一段文字在宽度不足的情况下会按空白符进行折行,
其中普通空格就是折行符的一个,而nbsp是非折行空格符,意味着nbsp前后的单词紧密连接在一起不会中间折行。
# 应用
在书名、系统名称等单词中使用nbsp这个字符实体,可以保证书名、系统名称不会中间折断,此外html中相连的多个普通空格字符会在解析式解析成一个空白字符,
但是nbsp字符实体不会进行合并。
# 扩展
nbsp 全称为non-breaking space,那是不是还有其他空白字符实体呢?还真有,继续看w3的文档。
...
<!ENTITY ensp CDATA "&#8194;" -- en space, U+2002 ISOpub -->
<!ENTITY emsp CDATA "&#8195;" -- em space, U+2003 ISOpub -->
<!ENTITY thinsp CDATA "&#8201;" -- thin space, U+2009 ISOpub -->
...
同样叫空白字符还有ensp、emsp、thinsp等。
ensp:en space,en是排版领域的一个单位,长度为字体的一般,如:字体为12px,那1en表示6px,故ensp为长度为字体一半的宽度的空格符,在中文中等同于半角的空格符。emsp:em space,em也是排版领域的一个单位,与前者的区别是1em表示字体大小,如:字体为12px,则1em同为12px,emsp即为字体相同长度的空格符,在中文中等同于全角的空格符。thinsp:thin space,顾名思义,就是比较瘦的空格符,宽度为ensp的一半。
← 文件大小与下载速度 spring 循环依赖 →
