# html 字符实体 - 空格

今日看到html字符实体中的空格部分,原以为nbsp只是普通空格符的等价映射,结果发现空格字符也别有洞天。

# 定义

https://www.w3.org/TR/html401/sgml/entities.html

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

w3的定义上看,nbsp是"非折行空格符",一段文字在宽度不足的情况下会按空白符进行折行, 其中普通空格就是折行符的一个,而nbsp是非折行空格符,意味着nbsp前后的单词紧密连接在一起不会中间折行。

# 应用

在书名、系统名称等单词中使用nbsp这个字符实体,可以保证书名、系统名称不会中间折断,此外html中相连的多个普通空格字符会在解析式解析成一个空白字符, 但是nbsp字符实体不会进行合并。

# 扩展

nbsp 全称为non-breaking space,那是不是还有其他空白字符实体呢?还真有,继续看w3的文档。

...
<!ENTITY ensp    CDATA " " -- en space, U+2002 ISOpub -->
<!ENTITY emsp    CDATA " " -- em space, U+2003 ISOpub -->
<!ENTITY thinsp  CDATA " " -- thin space, U+2009 ISOpub -->
...

同样叫空白字符还有enspemspthinsp等。

  1. enspen space,en是排版领域的一个单位,长度为字体的一般,如:字体为12px,那1en表示6px,故ensp为长度为字体一半的宽度的空格符,在中文中等同于半角的空格符。
  2. emspem spaceem也是排版领域的一个单位,与前者的区别是1em表示字体大小,如:字体为12px,则1em同为12pxemsp即为字体相同长度的空格符,在中文中等同于全角的空格符。
  3. thinspthin space,顾名思义,就是比较瘦的空格符,宽度为ensp的一半。
最后更新: Thu, 20 Jul 2023 14:09:25 GMT

0 评论

加载中...
访问量:-