Javascript 文本同级错位的html内联节点

Javascript 文本同级错位的html内联节点,javascript,html,css,text,Javascript,Html,Css,Text,我有以下html: <span as="0" style="display: block; -webkit-user-select: text; "> "[TEXT]" <span id="as_cursor" style="padding: 0px; margin:0px; width: 0px;"></span> "[TEXT]" </span> 我使用内跨距作为标记,稍后使用jquery.offset从中获取坐标。当该跨距与屏幕上呈现的行尾

我有以下html:

<span as="0" style="display: block; -webkit-user-select: text; ">
"[TEXT]"
<span id="as_cursor" style="padding: 0px; margin:0px; width: 0px;"></span>
"[TEXT]"
</span>
我使用内跨距作为标记,稍后使用jquery.offset从中获取坐标。当该跨距与屏幕上呈现的行尾一致时,实际文本中没有下线字符。内部跨距在外部元素的左上角开始呈现,因此给出了错误的偏移量0,0


我有没有办法避免这种行为?目前,只需要与chrome和mozilla兼容。

无法获得偏移量的原因是span元素是内联的。要解决此问题,请将以下代码添加到HTML页面的标题部分:

<style>
    .offsetFixed {
        display: inline-block;
    }

    #outerSpan {
        display: block;
        -webkit-user-select: text;
    }

    #as_cursor {
        padding: 0;
        margin: 0;
        width: 0;
    }
</style>

实际上,根据设计,它必须是内联的,因为如果我已经尝试过使用内联块,它必须在不中断其周围文本节点的正常流的情况下充当标记!在内部跨度之后,我得到了一条新的线。我得到了一个正确的偏移值,如果内部跨距与渲染的线条端点不一致,它就在端点。我认为这与空白处理有关,但是css的空白值都没有帮助…好吧,只是为了解决这个问题-内联元素没有显式的维度,它们也没有包装;块元素确实有明确的尺寸标注,并且它们是环绕的;内联块元素也有显式标注,但它们不换行。因此,没有理由在内部跨度之后得到一条换行线。不管怎样,你想达到什么目的呢?内跨距是文本块中光标最后所在位置的标记,这样我可以修改跨距的结构,稍后再回到插入点;是的,我意识到宽度=0是不必要的。如果我理解这种行为背后的原因,我就不会问了;-我通过在内部span&zwnj;中使用占位符字符解决了这个问题;它神奇地表现出来。无论如何,谢谢你的努力。
<span class="offsetFixed" id="outerSpan" as="0">"[TEXT]"
    <span class="offsetFixed" id="as_cursor"></span>"[TEXT]"
</span>
$(document).ready(function () {
    var offset = $("#as_cursor").offset();
    alert(JSON.stringify(offset));
});