Open 981377660LMT opened 7 months ago
En 空格和 Em 空格的宽度主要取决于当前字体的大小。
Em 空格的宽度等于当前字体的大小。例如,如果当前字体大小为 16px,那么 Em 空格的宽度就是 16px。
En 空格的宽度等于当前字体大小的一半。例如,如果当前字体大小为 16px,那么 En 空格的宽度就是 8px。
这两个名字来源于印刷术,Em 的宽度等于当前点数,而 En 的宽度则是 Em 的一半。
这些都是 Unicode 中的空格字符,它们在视觉上都是空格,但在计算机处理文本时,它们是不同的字符,可能会有不同的行为。以下是它们的一些基本区别:
\u2007
(图形空格):这是一个固定宽度的空格,它的宽度等于字体中数字字符的宽度。
\u2008
(标点空格):这是一个宽度等于字体中句号(.
)的空格。
\u2009
(窄空格):这是一个比标准空格稍窄的空格,大约为标准空格宽度的五分之一。
\u200A
(发空格):这是一个非常窄的空格,大约为标准空格宽度的六分之一。
\u202F
(窄不断行空格):这是一个窄空格,但它是不断行的,也就是说,它不会在此处断开行。
\u205F
(中等数学空格):这是一个在数学公式中使用的空格,它的宽度等于四个标准空格的宽度。
\u3000
(全角空格):这是一个宽度等于标准 CJK 字符宽度的空格,通常用于中文、日文和韩文中。
这些空格字符的具体宽度可能会因字体和排版环境的不同而有所不同。
const SPACE_UNICODE = {
ensp: "\u2002",
emsp: "\u2003",
nbsp: "\u00a0",
};
ensp:半个中文空格宽度
emsp:一个中文空格宽度
nbsp:一个半角英文空格宽度
\u2003 和 \u3000 都是全角空格字符
在 JavaScript 中,你可以使用
\u00A0
来在字符串中添加一个不可见的空格字符。这是 Unicode 编码中的 "NO-BREAK SPACE" 字符。例如:
除了
\u00A0
(不断行的空格)之外,还有其他一些 Unicode 中的不可见字符,例如:\u2002
:En 空格 (视觉上是Em空格的二分之一)\u2003
:Em 空格\u2004
:三分之一 Em 空格\u2005
:四分之一 Em 空格\u2006
:六分之一 Em 空格\u2007
:图形空格\u2008
:标点空格\u2009
:窄空格\u200A
:发空格\u202F
:窄不断行空格\u205F
:中等数学空格\u3000
:全角空格这些字符在视觉上都是空格,但在计算机处理文本时,它们是不同的字符,可能会有不同的行为。