<b>word-break:break-all</b>
<div class="break-all">
This text is styled with
<span>soooooooooooooooooooooooooome</span> of the text
formatting properties.
</div>
<b> word-wrap:break-word</b>
<div class="break-word">
This text is styled with
<span>soooooooooooooooooooooooooome</span> of the text
formatting properties.
</div>
9 回答
The W3 specification that talks about these似乎暗示
word-break: break-all
用于要求CJK(中文,日文和韩文)文本的特定行为,而word-wrap: break-word
是更一般的,非CJK感知的行为 .word-wrap: break-word
最近更改为overflow-wrap: break-word
将长单词包装到下一行 .
调整不同的单词,以便它们不会在中间中断 .
word-break: break-all
因此,如果您有许多固定大小的 Span 来动态获取内容,您可能只是更喜欢使用
word-wrap: break-word
,因为只有连续的单词在两者之间被打破,并且如果它是包含许多单词的句子,则调整空格以保持完整单词(一个词内没有中断) .如果没关系,那就去吧 .
对于
word-break
,一个非常长的单词从它应该开始的点开始,并且只要需要它就会被打破但是,对于
word-wrap
,一个非常长的单词将不会从它应该开始的那一刻开始 . 它包裹到下一行,然后在需要时被打破至少在Firefox(自v24起)和Chrome(截至第30版)中,当应用于
table
元素中的内容时:word-wrap:break-word
实际上不会导致长词包装,这可能导致表超出其容器的界限;
word-break:break-all
将导致单词换行,并且表格适合其容器 .
jsfiddle demo .
word-wrap
已被重命名为overflow-wrap
可能是为了避免这种混淆 .现在这就是我们所拥有的:
溢出包装
可能的值:
normal :表示行只能在正常的断点处中断 .
break-word :表示如果行中没有其他可接受的断点,通常不可破坏的单词可能会在任意点被破坏 .
source .
分词
normal :使用默认换行符规则 .
break-all :可以在非CJK(中文/日文/韩文)文本的任何字符之间插入分词符 .
keep-all :不允许CJK文本的分词 . 非CJK文本行为与正常情况相同 .
source .
现在回到你的问题, overflow-wrap 和 word-break 之间的主要区别在于,第一个确定溢出情况下的行为,而后者确定正常情况下的行为(无溢出) . 当容器没有帮助时会发生溢出情况,因为没有空间(想象一个具有固定宽度和高度的盒子) .
所以:
overflow-wrap: break-word
:在溢出的情况下,打破这些话 .word-break: break-all
:在正常情况下,只需打破行尾的单词即可 . 不需要溢出 .这是我能找到的全部 . 不确定它是否有帮助,但我想我会把它添加到混合中 .
WORD-WRAP
此属性指定当内容超出元素的指定呈现框的边界时当前呈现的行是否应该中断(这在某些方面类似于intent中的'clip'和'overflow'属性 . )此属性应仅适用如果元素具有可视化渲染,则是具有显式高度/宽度的内联元素,绝对定位和/或是块元素 .
WORD-BREAK
此属性控制单词中的换行行为 . 在元素中使用多种语言的情况下,它尤其有用 .
从相应的W3 specifications - 由于缺乏上下文而恰好还不清楚 - 可以推断出以下内容:
word-break: break-all
用于打破CJK(中文,日文或韩文)角色作品中的外国非CJK(比如西方)字样 .word-wrap: break-word
用于非混合(简称西方语言)语言的分词 .至少,这些是W3的意图 . 实际发生的事情是导致浏览器不兼容的主要蠢事 . 这是an excellent write-up of the various problems involved .
以下代码段可以作为如何在跨浏览器环境中使用CSS实现自动换行的摘要:
word-break:break-all
:单词继续边界然后在换行符中断 .
word-wrap:break-word
:首先,换行中的自动换行然后继续边界 .
示例:
除了之前的评论,浏览器对word-wrap的支持似乎比word-break好一点 .