word-break: normal; 之间有什么区别?和断字:keep:all;?
whats the difference between word-break: normal; and word-break: keep:all;?
这些看起来是一样的,有什么区别?
https://jsfiddle.net/pmuub8w1/2/
p{
word-break:normal;
}
p{
word-break: keep-all;
}
- normal: 遵循正常的换行规则,即在单词之间的space处换行。因此,即使最后一个单词超出了容器的范围,句子也不会转到下一行,直到下一个单词出现。这将对所有文本完成,甚至 CJK characters(中文、日文、韩文和衍生词)
- break-all: 如果超出范围,则在字符处中断,这意味着单词本身将被中断并带到第二行。因此,假设
ALongWord
在 AL
处越界,那么 break-all
将使其余的 ongWord
转到第二行。 CJK
个字符不会执行此操作。
- keep-all: 除中日韩字符外,按正常行规则中断。它就像
normal
除了 CJK
的情况下它根本不会中断(既不是 normal
所做的行规则也不是 break-all
所做的字符)
以下是 Mozzila documentation 处示例的屏幕截图。
注意非 CJK 和 CJK 句子处理方式的区别。
另一个答案的重要部分是正确的:normal
和 keep-all
对于非 CJK 文本是相同的。但是,对 CJK 文本行为方式的描述是错误的。
在 normal
中,CJK 可以在任何地方 换行 。这是因为 CJK 通常在没有空格的情况下使用,并且任何地方的中断都是可以接受的(如果不是完美的话)。在屏幕截图中,本当
是一个单词,但在最后一行的开头被分成两半。
在break-all
中,非CJK文本可以在任何地方断开,与normal
中的CJK文本相同。
在 keep-all
中,CJK 文本与其他脚本中的文本在 normal
中的工作方式相同 - 也就是说,如果没有任何空格的长行可能会溢出容器。如果您希望 CJK 文本换行,您必须手动插入空格。当与零宽度空格结合使用以在自然单词边界处创建换行符时,这可能很有用。截图中,因为日文没有空格,所以和英文的长字一样处理,溢出容器。
这些看起来是一样的,有什么区别? https://jsfiddle.net/pmuub8w1/2/
p{
word-break:normal;
}
p{
word-break: keep-all;
}
- normal: 遵循正常的换行规则,即在单词之间的space处换行。因此,即使最后一个单词超出了容器的范围,句子也不会转到下一行,直到下一个单词出现。这将对所有文本完成,甚至 CJK characters(中文、日文、韩文和衍生词)
- break-all: 如果超出范围,则在字符处中断,这意味着单词本身将被中断并带到第二行。因此,假设
ALongWord
在AL
处越界,那么break-all
将使其余的ongWord
转到第二行。CJK
个字符不会执行此操作。 - keep-all: 除中日韩字符外,按正常行规则中断。它就像
normal
除了CJK
的情况下它根本不会中断(既不是normal
所做的行规则也不是break-all
所做的字符)
以下是 Mozzila documentation 处示例的屏幕截图。
注意非 CJK 和 CJK 句子处理方式的区别。
另一个答案的重要部分是正确的:normal
和 keep-all
对于非 CJK 文本是相同的。但是,对 CJK 文本行为方式的描述是错误的。
在 normal
中,CJK 可以在任何地方 换行 。这是因为 CJK 通常在没有空格的情况下使用,并且任何地方的中断都是可以接受的(如果不是完美的话)。在屏幕截图中,本当
是一个单词,但在最后一行的开头被分成两半。
在break-all
中,非CJK文本可以在任何地方断开,与normal
中的CJK文本相同。
在 keep-all
中,CJK 文本与其他脚本中的文本在 normal
中的工作方式相同 - 也就是说,如果没有任何空格的长行可能会溢出容器。如果您希望 CJK 文本换行,您必须手动插入空格。当与零宽度空格结合使用以在自然单词边界处创建换行符时,这可能很有用。截图中,因为日文没有空格,所以和英文的长字一样处理,溢出容器。