html - 为什么 Firefox 和 Chrome 在将 U+3002 与 `word-break: keep-all` 一起使用时表现不同?

标签 html css google-chrome firefox

我在 textarea 中使用日语输入了以下句子。

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 5em;
  height: 10em;
  word-break: keep-all;
}
<textarea>あいうえお。かきくけこ</textarea>

Firefox中就是这样一张图片,U+3002(.)后面紧跟着一句。

Firefox Result

然而,在 Chrome 中,在 U+3002 (.) 之后立即换行。

Chrome Result

根据MDN , keep-all 不允许 CJK 文本中断。

keep-all

Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.

所以我认为 Chrome 的工作方式与规范不同。如何让 Chrome 的文本中断像 Firefox 一样工作?


操作系统和浏览器详细信息

  • Windows 10
  • Firefox 开发者版 67.0b1
  • 谷歌浏览器 72.0.3626.121

最佳答案

Chrome 中发生的事情是 <textarea> 有一个特殊的 overflow-wrap 值,它被设置为 break-word。 这意味着当您在此添加自己的 word-break: keep-all 时,这两个值将发生冲突。

Chrome 似乎首先遵守 word-break 规则,而 Firefox 忽略它,如下所示:

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 5em;
  height: 10em;
  word-break: keep-all;
  overflow-wrap: normal;
}
<textarea>あいうえお。かきくけこ</textarea>

然后 Chrome 对此结果应用 overflow-wrap,这确实使你的句子重复中断。

所以这里真正奇怪的是,为什么 Chrome 拒绝在 之前 任何点字符,即使使用 word-break: break-all...

* {
  margin: 0;
  padding: 0;
}

textarea {
  width: 1em;
  height: 46em;
  word-break: break-all;
}
<textarea>あいうえお。かきくけこ푸바.밫foobar.baz..............</textarea>

而且,不仅在 <textarea> 中

* {
  margin: 0;
  padding: 0;
}

.test {
  width: 1em;
  height: 46em;
  word-break: break-all;
  border: 1px solid;
}
<div class="test">あいうえお。かきくけこ푸바.밫foobar.baz..............</div>

不幸的是,我没有找到规避这种行为的方法......

关于html - 为什么 Firefox 和 Chrome 在将 U+3002 与 `word-break: keep-all` 一起使用时表现不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251973/

相关文章:

html - HTML 和 CSS 中的 style 标签同时规则

javascript - 为什么for循环执行无限次

javascript - 在特定日期使用 jquery 显示图像,并且在这一天之后不显示

windows - Chrome 中不显示僧伽罗语

css - 隐藏边界半径的溢出在 chrome 中不起作用

jquery - 跨浏览器 : Css rule not parsed in Explorer 8 (div#main>div)

html - 在 Chrome 中旋转的图像

html - 溢出 scroll-y 不适用于 flexbox

javascript - 如何在响应菜单上的导航链接悬停时设置下划线?

javascript - 打开 chrome.identity.launchWebAuthFlow 作为选项卡(Chrome 扩展)