3

是可编辑跨度元素的简单示例。

跨度元素可以通过单击 lt 进行编辑 - 出现输入。

<span>Hello</span>
<input type="text" style="display:none;" value=""/>
<style>
    span, input {    
        font-family: arial, sans-serif;
        font-size: 14px;
    }
    span {
        cursor: pointer;
    }
</style>
<script>
    $(function() {
        $("span").click(function() {
            $(this).hide();
            $("input").val($(this).text()).show();
        });
        $("input").keypress(function(e) {
            if (e.which == 13) {
                $(this).hide();
                $("span").text($(this).val()).show();
            }
        });
    });
</script>

我希望输入中的文本与跨度中的文本处于确切位置。

所以我要添加边距:

对于铬:

input {
    margin-left: -2px;
    margin-top: -2px;
}

对于 IE 10 和 Opera:

input {
    margin-left: -3px;
    margin-top: -2px;
}

对于火狐:

input {
    margin-left: -4px;
    margin-top: -2px;
}

我可以制作一个可以在任何浏览器中使用而无需任何特殊技巧的通用 css 吗?

4

1 回答 1

11

contenteditable属性应该适合您。它一直有效地回到 ie5.5

<span contenteditable></span>

http://jsfiddle.net/CCJMe/

于 2013-10-11T13:24:08.810 回答