word-break CSS属性用法演示
word-break 属性指定如何在单词内断行,与 overflow-wrap 不同,它更积极地控制换行行为。
重要区别:word-break 是主动换行策略,而 overflow-wrap 是被动换行策略(仅在内容溢出时才换行)。
1. word-break: normal (默认值)
这里有一个超长的英文单词:Supercalifragilisticexpialidocious,它会超出容器边界而不是换行。
按语言规则换行,中文在字符间换行,英文在单词边界换行。
2. word-break: break-all
这里有一个超长的英文单词:Supercalifragilisticexpialidocious,它会在容器边界处换行。
允许在任意字符间换行,包括在CJK文本中(这在normal模式下不会发生)。
3. word-break: keep-all
中英文混合文本:Supercalifragilisticexpialidocious 这个单词和中文字符
对于CJK文本(中文、日文、韩文),不允许在字符间换行,保持单词完整性。
4. 三种值的对比
normal
https://www.example.com/very/long/url/that/might/cause/overflow
break-all
https://www.example.com/very/long/url/that/might/cause/overflow
keep-all
中英文混合文本:Supercalifragilisticexpialidocious
5. 中文文本的差异
normal
这是一个很长的中文句子,通常在字符之间可以换行,但会尽量保持语义完整性。
break-all
这是一个很长的中文句子,会在任意字符间换行,可能破坏语义完整性。
keep-all
这是一个很长的中文句子,会尽量保持词语的完整性,不轻易在字符间断开。
6. 与overflow-wrap的比较
word-break: break-all
Thisisaverylongwordwithoutspaces
overflow-wrap: anywhere
Thisisaverylongwordwithoutspaces
word-break: break-all 会主动在任意位置换行,而 overflow-wrap 仅在必要时换行。
CSS 代码:
.normal-break { word-break: normal; }
.break-all { word-break: break-all; }
.keep-all { word-break: keep-all; }
/* 与overflow-wrap的区别 */
.overflow-wrap { overflow-wrap: break-word; }
实际应用场景
- word-break: break-all:处理可能包含长无分隔符字符串的用户输入
- word-break: keep-all:在中文内容中保持词语完整性
- word-break: normal:大多数常规文本的默认行为
- 响应式设计:在小屏幕上控制文本换行行为
与其他换行属性的关系
word-break、overflow-wrap 和 white-space 可以一起使用,它们的优先级和交互关系:
- white-space 控制空白符的处理方式
- word-break 提供主动的换行策略
- overflow-wrap 提供被动的溢出保护