像最新的 Safari 一样使用空格换行文本:pre

Posted

技术标签:

【中文标题】像最新的 Safari 一样使用空格换行文本:pre【英文标题】:Wrap Text like the latest Safari does with white-space: pre 【发布时间】:2012-07-26 17:23:17 【问题描述】:

white-space: pre; 应用于<div>s 或<textarea>s 时,Safari 可以很好地包装文本,如下所示。

<textarea style="width:300px; white-space:pre; word-wrap:break-word;"> text. dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd</textarea>

当一个单词到达文本区域的max-width 时,整个单词不会像您只使用word-wrap: break-word; 那样向下移动一行。相反,它在max-width 处拆分单词并从左下角的换行符继续。我希望能够在所有主流浏览器中复制它,但如果太麻烦的话,我会满足于只使用 Firefox 和 IE。

任何关于如何实现这一目标的想法/建议将不胜感激。

【问题讨论】:

你能贴一张 safari 不同之处的截图吗? img15.imageshack.us/img15/2012/firefoxva.pngimg193.imageshack.us/img193/7020/safarik.png @Smith 链接失效了 【参考方案1】:

使用overflow-wrap or word-wrap。它们是同义词,但根据我的经验,word-wrap 适用于大多数浏览器:

textarea 
    word-wrap: break-word;
    overflow-wrap: break-word;

这将插入硬中断。

【讨论】:

这里更精确地了解word-wrapoverflow-wrap 之间的差异:***.com/a/17259958/2477545【参考方案2】:

这对我有用

white-space: normal;
word-break: break-word;

【讨论】:

虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。

以上是关于像最新的 Safari 一样使用空格换行文本:pre的主要内容,如果未能解决你的问题,请参考以下文章

使用 CSS 调整换行文本的大小 [重复]

将按钮与换行文本并排垂直对齐

如何将 Cmder 设置为不换行文本输出

java 在表格单元格中换行文本

setCellFactory覆盖updateItem和换行文本

用正则表达式换行文本