html - 使用断字 : break-word; on Firefox

标签 html css google-chrome firefox word-break

我有一个用于文本段落的 div 元素。这是为了移动响应,所以我一直在用不同的浏览器/视口(viewport)大小测试它。我有以下代码:

.text {
  font-size: 18px;
  word-break: break-word;
  overflow-wrap: break-word;
  width: 200px;
  border: red solid 1px;
}
<p class="text">Wordthatislongenoughtogetalineonitsown andawordthatfits fits</p>

调整窗口大小时,它在 Chrome 上看起来很好,w 会换行然后中断。 但是,在 Firefox 中,文字根本不会中断,div 元素会扩展以包含所有文本,从而在页面底部创建一个滚动条。

我怎样才能让它在 Firefox 中中断?我尝试添加 white-space: pre-wrap; 但它所做的只是添加丑陋的换行符,甚至没有强制断词。我不想使用 word-break: break-all; 因为那样会打断每个单词,而我只想打断溢出的单词。 overflow-wrap: break-word; 似乎什么也没做。

编辑: 我试图让它看起来像这样,这就是它在 Chrome 上的样子:Chrome Success

这是它在 Firefox 上的样子(不是我想要的):Firefox Error

这就是 break-all 的样子,这也不是我想要的。请注意单词在可以移动到下一行时是如何断开的:break-all

最佳答案

我建议完全删除 word-break,只保留 overflow-wrap(或 word-wrap,如果你想IE/Edge 支持),应该没问题。

为什么?

更新

似乎规范 has been updated在 18 年 12 月将 break-word 值作为已弃用的值提及:

For compatibility with legacy content, the word-break property also supports a deprecated break-word keyword. When specified, this has the same effect as word-break: normal and overflow-wrap: anywhere, regardless of the actual value of the overflow-wrap property.

答案的旧部分

word-break: break-word 似乎是基于 Webkit 的浏览器中的错误(或者可能是旧 css 3 草稿的遗留问题?),如 break-word 仅适用于 overflow-wrap(或 word-wrap,适用于旧版浏览器(和 Edge ;))属性。

我创建了一个 comparison in js fiddle

来源:

word-break spec

overflow-wrap / word-wrap spec

关于html - 使用断字 : break-word; on Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47243337/

相关文章:

javascript - 如何使用 Python 填写也有 Javascript 的 HTML 表单?

html - IE - 位置固定 z-index 绘制问题

html - 父元素不跟随子元素

css - 显示合成图层边框(蓝色边框)

html - CSS3 : remove blur effect on scale

javascript - JavaScript 有没有办法在浏览器解析 HTML 时加载图像路径之前更改图像路径?

html - 如何垂直对齐两个div?

html - 使用 CSS 自动调整相对于窗口高度的图像

javascript - 我如何使用js截屏并上传图片?

json - 使用 angular http.post 方法发布 - xmlhttprquest 无法加载服务