Firefox 比 Chrome 处理得更好,但都不是我想要的方式。它们都将所有相邻的 HTML 标记集中在一起,并将它们视为一个(我不想要)。
Firefox:当光标在一个标签(或一组相邻标签)的左侧并且您按右时,光标会跳过标签前面的第一个字符。然后,如果你按左键,它会在字符和标签之间移动。(按左然后右相同。)
Chrome:标签和它后面的第一个字符集中在一起。无法将光标放在标签和后面的字符之间。
期望:标签被视为相对于光标的单个字符。如果光标在标签的左侧并且您按右,它应该转到标签的右侧,反之亦然按左。
如何在浏览器上强制执行所需的行为?
这不适用于所见即所得的编辑器。为了达到特定目的,标签在生产中以视觉方式表示,就像它们在 jsfiddle 中一样。用户希望任意控制哪个元素包含光标。
b:before, b:after,
i:before, i:after,
p:before, p:after {
color: blue;
}
b:before {
content: '<b>';
}
b:after {
content: '</b>';
}
p:before {
content: '<p>';
}
p:after {
content: '</p>';
}
i:before {
content: '<i>';
}
i:after {
content: '</i>';
}
----------
<p contenteditable='true'>regular regular<b>bold</b>regular -
try moving the cursor to either side of either blue tag.</p>
<p contenteditable='true'>try it in this: regular<b><i>bolditalic</i></b></p>