我有一个<div contenteditable="true"></div>,当我输入一些内容,然后删除这些内容,似乎浏览器<br>自动插入元素到这个元素.
有没有人有这方面的经验?知道如何解决它吗?
Shy*_*oop 13
使用 SPAN 元素作为 contenteditable 元素而不是 DIV 元素。
请完整阅读。问:为什么这个想法有效?A. Span 是内联元素,Div 是块元素。默认情况下,块元素为空时将具有零维度(如果块元素没有应用填充)。相比之下,空行内元素倾向于保持它们的高度和宽度变为零。因此,我们只需要为此 Span(或任何内联元素)提供适当的宽度,但是,内联元素不会将宽度作为属性,因此我们需要将此内联元素的显示指定为 inline-block 或 block .
我已经广泛使用这个想法来创建在线编辑器。希望这可以帮助。
注意:将内联元素的显示更改为块/内联块,并不意味着元素的性质已经改变。它仍然是一个内联元素,因此内联元素永远无法在其中容纳块元素。
小智 5
在为Web应用程序开发功能之前,我遇到了这个问题.这是浏览器的默认行为.它与文本编辑器的换行符相同.处理它的最佳方法是在提交/抓取内容时删除标记,然后在没有文本可用时删除内容时对内容运行RegEx.
我通常使用<br>标签来确定换行符的位置.有些浏览器使用<p>标签,因此请务必进行跨浏览器测试.