【发布时间】:2016-11-04 02:37:21
【问题描述】:
我正在尝试更改某些内联元素(例如 <span> 和 <a>)的 word-break 属性,以更好地显示页面内容。
似乎 Firefox 只识别显示为块的元素的分词属性(例如 <div>),而 Chrome 尊重分词的请求。
在下面的示例中,红色和蓝色部分在 Chrome 中呈现相同(xxxxx 被分成几行)。在火狐浏览器中,红框内的 xxxxx 溢出。
<div style="width:200px;background:red;">
Hello <span style="word-break:break-all;">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span> World
</div>
<div style="width:200px;background:blue;word-break:break-all;">
Hello <span>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span> World
</div>
上面的例子:https://jsfiddle.net/7scx4hfq/
哪个浏览器的行为正确?是 Firefox 的 bug 还是 Chrome 的 bug?
还有更重要的是,如何在所有浏览器中达到想要的效果?
注意,不能在块级别设置word-break:break-all。
【问题讨论】:
-
我总是对 50 个字母单词的用例感到困惑。你能想出一个实用的例子吗?
-
用例是用合理的文本拼写出来的长链接。正常的分词只会在斜杠“/”处断开 URL,这会导致剩余单词出现非常大的难看间隙。见这里:jsfiddle.net/zL8ytno6 你会得到如此丑陋的链接,例如指向 Flickr 和 Google Drive 的链接。
-
@Paulie_D 用户输入的文字完全出乎意料。
-
@kaymes 我或多或少有同样的问题(见stackoverflow.com/questions/56465092/…)。在此期间您找到解决方案了吗?
标签: css firefox webkit word-break