溢出换行和断字之间的区别?

Ans*_*elm 48 html css word-wrap word-break

overflow-wrap/word-wrap和word-break之间的确切区别是什么?任何人都可以告诉我,打破很长链接的更好的方法是什么?大多数人说你应该使用word-break和overflow-wrap,但它看起来不合逻辑.我认为将overflow-wrap与自动换行相结合以获得更好的跨浏览器支持是最好的方法.你怎么看?

kar*_*ikr 52

引自来源

  • 自动换行:自动换行CSS属性用于指定浏览器是否可以在单词中断行,以防止在其他不可破坏的字符串太长而无法放入其包含框中时出现溢出.

  • overflow-wrap:word-wrap属性已overflow-wrap在CSS3 Text规范的当前草稿中重命名

  • word-break: word-break CSS属性用于指定如何(或如果)断开单词中的行

所以,你需要将word-break与自动换行相结合,这是正确的组合.

  • 什么是不回答. (13认同)
  • 这里没有例子,我不明白这个答案如何真正解释“overflow-wrap”和“word-break”之间的区别。 (9认同)
  • 找到答案:"谈论这些的W3规范似乎暗示单词中断:break-all用于要求CJK文本的特定行为,而自动换行:break-word是更通用的,非CJK-意识到,行为." (http://stackoverflow.com/questions/1795109/what-is-the-difference-between-word-break-break-all-versus-word-wrap-break)CJK是中文,日文和韩国人. (7认同)
  • word-wrap是一个过时的Microsoft扩展(即使它被大多数浏览器实现为无前缀的属性),现在已被overflow-wrap取代.MDN将两个不同的页面合并为一个页面:https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap (3认同)
  • 请详细说明这一点。这不是一个明确的答案。按照你的说法,“word-wrap”和“word-break”似乎是完全相同的东西。 (2认同)

Ben*_*ler 16

在这一点上,word-break: break-word它确实是overflow-wrap: anywhere.

word-break: break-word已正式弃用;请参阅CSS 文本模块级别 3 工作草案

为了与旧内容兼容,该word-break属性还支持已弃用的break-word关键字。指定后,这与word-break: normaland具有相同的效果overflow-wrap: anywhere,而不管 overflow-wrap 属性的实际值如何。

这里要注意的是,这 word-break: break-word是 的别名overflow-wrap: anywhere,而不是的别名overflow-wrap: break-word

word-break: normal只是 的默认值word-break,因此您可以忽略它,除非您为 设置了不同的值word-break。)

如何做overflow-wrap: anywhereoverflow-wrap: break-word不同?

两者之间文档中的唯一区别是,overflow-wrap: anywhere在“计算最小内容内在大小”时,是否“考虑由单词 break 引入的软换行机会”,而overflow-wrap: break-word不会。

如果考虑宽度,我猜在某些情况下宽度可能更准确?


Ven*_*ryx 13

以下是确切的区别:(基于 Chrome v81 中的测试,并通过参考规范确认我的观察)

空白

normal(默认):折叠空白链和换行符;在需要的地方添加换行符
nowrap:折叠空白链和换行符;不添加换行符
pre-line:折叠空白链;在需要的地方添加换行符
pre-wrap:不折叠;在需要的地方添加换行符
break-spaces:与预换行相同,除了能够触发换行符添加的空格
pre:不折叠;不添加换行符

注意:如果所选white-space值列出“不添加换行符”,则无法应用以下属性的换行符行为(即忽略)。

断字

normal(默认):在适合容器的最后一个单词的末尾换行 [如果存在],否则行保持不变
break-word:在适合容器的最后一个单词的末尾换行 [如果存在],否则在容器的末尾
break-all:换行在容器的结尾 [可以分割一个单词,即使附近有空格]

溢出包装(旧名称:自动换行)

normal(默认):在适合容器的最后一个单词的末尾换行 [如果存在],否则行保持不变
break-word:在适合容器的最后一个单词的末尾换行 [如果存在],否则在容器的末尾 [如果存在] -flex 容器],否则行保持不变
anywhere:在适合容器的最后一个单词的末尾断行 [如果存在],否则在容器末尾 [与word-break: break-word] 相同

请注意,对于overflow-wrap: break-word(对于为容器留下太长行的任何组合),不间断的行会导致 flex 容器扩展到超出指定的 flex 比率(强制其他 flex 容器收缩以解决过长的内容)。

  • @TylerH 它不是(甚至接近)其他地方内容的纯粹副本。大多数行为描述来自我在 Chrome 中的直接测试,引用文档页面只是为了确认我观察到的行为与规范一致,并确保我没有遗漏其他行为。与抄袭相差甚远。(我将更新顶部的注释以澄清) (2认同)
  • 对于一个真正认真、耐心、真正想了解一切的读者来说,这是最好的答案。非常感谢。 (2认同)

wei*_* ou 5

overflow-wrap强调如何处理溢出,word-break强调如何断词。

在此输入图像描述