不换行空格
U+00A0,防止在该位置换行的空格。HTML中为 ,用于数字与单位之间(100 km)、专有名词(Mr. Smith)和缩写之后。
What is a Non-Breaking Space?
The non-breaking space (NBSP) is a space character that looks identical to a regular space but has a special typographic and semantic property: it prevents the text rendering engine from inserting a line break at that position. When a line must wrap, it will break at a regular space — but never at a non-breaking space. The two characters around an NBSP stay together, always on the same line.
Unicode code point: U+00A0, encoded in UTF-8 as 0xC2 0xA0.
When to Use a Non-Breaking Space
The non-breaking space solves the problem of orphaned words and awkward breaks in specific text patterns:
| Use Case | Example | Without NBSP | With NBSP |
|---|---|---|---|
| Number + unit | 100 km |
"100" then "km" on next line | Always together |
| Title + name | Mr. Smith |
"Mr." alone at line end | Always together |
| Date parts | 25 January |
"25" alone | Always together |
| Currency | $1,000 |
May break oddly | Protected |
| Phone numbers | +1 800 555 |
Can break mid-number | Protected |
| French guillemets | « bonjour » |
Space before » might wrap |
Protected |
In French typography, non-breaking spaces are required before certain punctuation marks: :, ;, !, ?, » and after «. This is a strict typographic rule in French publishing.
Typing the Non-Breaking Space
- macOS: Option + Space
- Windows: Alt + 0160 (numpad), or Ctrl+Shift+Space in MS Word
- HTML:
(the most common HTML entity of all time) - CSS:
white-space: nowrapachieves a similar effect without the character itself
<!-- Keep "100" and "km" on the same line -->
100 km
<!-- French typography -->
Bonjour !
<!-- Non-breaking in a span -->
<span style="white-space: nowrap">Mr. Smith</span>
NBSP vs. CSS white-space
The non-breaking space character operates at the content level — it's part of the text. CSS white-space: nowrap operates at the presentation level — it prevents wrapping for an entire element. Choose based on the situation:
- Use
when the no-break relationship is semantic (a unit and its number belong together) - Use
white-space: nowrapwhen you want to prevent all wrapping in a UI element (like a navigation label) - Use
width: max-contentorflex-wrap: nowrapfor layout-level control
The Width Gotcha
Non-breaking spaces have the same visual width as regular spaces (in most fonts), but they behave differently in:
- Trimming: JavaScript
trim()does NOT remove NBSP. Usereplace(/[\s\u00A0]+/g, ' ')to normalize. - String splitting:
split(' ')on a string containing NBSP will not split at the NBSP position. - Regex:
\smatches NBSP in most engines, but[ ](literal space class) does not.
const s = "100\u00A0km";
console.log(s.trim()); // "100 km" — NBSP preserved
console.log(s.split(" ")); // ["100 km"] — no split at NBSP
console.log(s.split(/\s/)); // ["100", "km"] — \s matches NBSP
Quick Facts
| Property | Value |
|---|---|
| Unicode code point | U+00A0 |
| Unicode name | NO-BREAK SPACE |
| UTF-8 encoding | 0xC2 0xA0 (2 bytes) |
| HTML entity | |
| macOS shortcut | Option + Space |
| Windows shortcut | Alt + 0160 |
| Visual appearance | Identical to regular space |
| Line break behavior | Never breaks here |
| JavaScript trim() | Does NOT remove NBSP |
相关术语
排版印刷 中的更多内容
CSS @font-face descriptor specifying which Unicode code points a font should cover. …
The mechanism by which a rendering engine substitutes glyphs from a secondary …
Modern font format developed by Microsoft and Adobe supporting up to 65,535 …
字符从右向左流动的文本方向,用于阿拉伯语、希伯来语、塔阿纳等文字,正确显示需要双向算法。
Fonts downloaded by the browser to render text, declared via CSS @font-face. …
全角(Em):等于字号的宽度;半角(En):全角的一半,用于定义全角破折号宽度、全角空格、半角空格和CSS单位(1em、0.5em)。
附加在字母上以改变发音或意义的符号,可以是预组合形式(é U+00E9)或组合形式(e + ◌́ U+0065+U+0301),包括重音、变音符、软音符和波浪号等。
特定大小、字重和样式的字型实现,在数字排版中指包含字形定义和度量的字体文件(TTF、OTF、WOFF2)。
字体渲染的字符视觉表现形式。一个字符可有多个字形(连字、上下文形式),一个字形也可表示多个字符。
为视觉美观而调整特定字符对(如AV、To、LT)之间间距的操作,是字体特性而非Unicode概念,但会影响Unicode文本的渲染。