什么是分词之间的区别:正常;和断言:保持:全部;?

时间:2017-06-25 00:47:37

标签: css word-break

这些似乎做同样的事情,有什么区别? https://jsfiddle.net/pmuub8w1/2/

    p{
          word-break:normal;
   }

   p{
         word-break: keep-all;
    }

2 个答案:

答案 0 :(得分:1)

  1. 正常:遵循正常的换行规则,即在单词之间的空格处断行。因此,即使最后的单词超出了容器的范围,句子也不会进入下一行,直到下一个单词出现。即使对于CJK characters(中文,日文,韩文和衍生产品)
  2. ,也会对所有文本执行此操作
  3. break-all:如果超出界限则中断字符,这意味着一个单词本身将被破坏并被带到第二行。因此,假设ALongWord超出了AL的范围,那么break-all将使其余ongWord转到第二行。对CJK个字符不会这样做。
  4. keep-all:按照正常的行规则中断,但CJK字符除外。它与normal类似,除非在CJK的情况下它根本不会中断(既不是normal所做的行规则,也不是break-all所做的字符规则。 1}})
  5. 以下是Mozzila documentation示例的屏幕截图。 word-break

    注意非CJK和CJK句子的处理方式之间的区别。

答案 1 :(得分:0)

另一个答案得到正确的重要部分:normalkeep-all对于非CJK文本是相同的。但是,CJK文本行为的描述是错误的。

normal中,CJK可以在任何地方打破。这是因为CJK通常在没有空格的情况下使用,并且在任何地方都可以接受(如果不是完美的话)。在屏幕截图中,本当是一个单词,但它在最后一行的开头被分成两半。

break-all中,非CJK文本可以在任何地方删除,与normal中的CJK文本相同。

keep-all中,CJK文本的作用与normal中其他脚本中的文本相同 - 也就是说,如果有一条没有任何空格的长行,它就会溢出容器。如果要包装CJK文本,则必须手动插入空格。当与零宽度空间组合以在自然字边界处创建换行符时,这可能很有用。在屏幕截图中,因为日文文本没有空格,所以它与英文中的长单词相同,并且溢出容器。