contenteditable里光标位置的问题
在contenteditable的元素中,光标的放置位置通常遵循一定的规范。然而,当元素中包含强标签(**)时,光标位置可能会出现意外情况。
如果光标最初放在强标签之前,无论输入什么文字,光标都将保持在之外。这是因为contenteditable元素会优先将光标放在非可编辑元素(如标签)的边界上。因此,光标始终位于**之外,输入的文字不会加粗,如下图所示:
<p>this is a 光标在此处<strong>test</strong></p>
但是,如果光标最初放在强标签之内,情况就会发生改变。在这种情况下,光标将在内部保持移动,并且输入的文字将加粗,如下图所示:
<p>this is a <strong>光标在此处test</strong> </p>
对于光标落脚点,w3c明确规定了相关的规范。该规范指出,光标应放置在插入内容的前端,如果前端是包含文本节点的元素的边界,则光标应放置在该边界。在本文所讨论的情况下,**标签内的文本节点的边界是光标的正确放置位置。