html - div contenteditable 和 span 元素的自动换行

标签 html css

当我在 contenteditable div 中有 span 标签时,自动换行会发生变化。这是一个 fiddle 。 http://jsfiddle.net/knpB9/

<div contenteditable="true" style="width:168px; border:1px solid black;">aaaaaaaa-bbbbbbbb-ccccccc</div>
<br>
<div contenteditable="true" style="width:168px; border:1px solid black;">aaaaaaaa-bbbbbbbb-<span style="color:red;">ccccccc</span></div>

无论 html 标签如何,如何保持自动换行?

最佳答案

如果您想保留正常的换行符,您可以将跨度设置为display: inline-block;

这是一个 jsFiddle .

如果您不关心单词中间的换行,这段 CSS 就可以解决问题:

div
{
    white-space: pre;
}

这是一个 jsFiddle .

看看here阅读它的工作方式和原因。

更新

为什么它最后会这样包裹你 jsFiddle是因为连字符为浏览器提供了 soft wrap opportunity .您可以将它们替换为不间断的连字符 并且它应该再次按预期换行。您可以编写一些 JS 来捕获 contenteditable 元素上的每个按键,然后在按下连字符键时取消其正常行为,并插入不间断连字符而不是普通连字符

这是一个 jsFiddle .

关于html - div contenteditable 和 span 元素的自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16474897/

相关文章:

javascript - 使用 Javascript 获取用户可见的选定文本

php - 当文件从本地主机移动到服务器时,登录表单不起作用

html - Animate.css 插件不工作

javascript - 用于文章或帖子创建的 HTML/CSS/JS 模板或插件

asp.net - 更改代码隐藏中重复器元素的样式?

javascript - 如何在功能上加入延迟?

javascript - 在 chrome 背景选项卡中自动播放声音

javascript - 调用数组中函数中的函数

html - 响应式两列网格

带有显示每个打印页面的页脚的 HTML 文件