contentEditable div 与 non-editable child
contentEditable div with non-editable child
我有一个 contentEditable div A,包含 non-editable div B,其中包含可编辑的 divs C & D
<div class="a" contenteditable>
blablabla
<div class="b" contenteditable=false>
<div class="c" contenteditable>
</div>
<div class="d" contenteditable>
</div>
</div>
bleh
</div>
https://jsfiddle.net/Ladxbou1/1/
当我的插入符在我的 non-editable div B(蓝色轮廓)旁边时,我希望能够 select 或删除该块,按 Delete 或 Backspace , 但我不能。
我可以删除或 select 我的 non-editable div 仅当它包含不可编辑的 div 时: https://jsfiddle.net/Ladxbou1/4/ (但它没有突出显示select所以看起来很奇怪。
是否可以有一个干净的解决方法,或者我是否需要编写笨拙的 Javascript 才能使其工作?
您绝对可以通过用鼠标选择它来删除整个 <div class="b">
元素,即使里面没有可编辑的元素。基于光标的选择似乎是不可能的(至少我还没有做到)。是的,你是对的,有点尴尬,你看不到选择...
在任何情况下,conteditable
属性被许多人视为“不是一个好主意”,因为它允许生成相当非结构化的格式化输入,可能需要额外的“清理”-努力才能可以用于进一步处理或存储。
.a {
border: 1px dashed gray;
padding: 5px;
}
.b {
border:1px dashed blue;
padding:5px;
width:100px;
vertical-align:middle;
display:inline-block;
}
.c {
border:1px dashed red;
}
.d {
margin-top:5px;
border:1px dashed green;
}
*:focus {
outline: none;
}
<div class="a" contenteditable>
class a, editable
<div class="b" contenteditable="false">class b
<div class="c">class c
</div>
<div class="d">class d
</div>
</div>
rest of a, editable
</div>
我有一个 contentEditable div A,包含 non-editable div B,其中包含可编辑的 divs C & D
<div class="a" contenteditable>
blablabla
<div class="b" contenteditable=false>
<div class="c" contenteditable>
</div>
<div class="d" contenteditable>
</div>
</div>
bleh
</div>
https://jsfiddle.net/Ladxbou1/1/
当我的插入符在我的 non-editable div B(蓝色轮廓)旁边时,我希望能够 select 或删除该块,按 Delete 或 Backspace , 但我不能。
我可以删除或 select 我的 non-editable div 仅当它包含不可编辑的 div 时: https://jsfiddle.net/Ladxbou1/4/ (但它没有突出显示select所以看起来很奇怪。
是否可以有一个干净的解决方法,或者我是否需要编写笨拙的 Javascript 才能使其工作?
您绝对可以通过用鼠标选择它来删除整个 <div class="b">
元素,即使里面没有可编辑的元素。基于光标的选择似乎是不可能的(至少我还没有做到)。是的,你是对的,有点尴尬,你看不到选择...
在任何情况下,conteditable
属性被许多人视为“不是一个好主意”,因为它允许生成相当非结构化的格式化输入,可能需要额外的“清理”-努力才能可以用于进一步处理或存储。
.a {
border: 1px dashed gray;
padding: 5px;
}
.b {
border:1px dashed blue;
padding:5px;
width:100px;
vertical-align:middle;
display:inline-block;
}
.c {
border:1px dashed red;
}
.d {
margin-top:5px;
border:1px dashed green;
}
*:focus {
outline: none;
}
<div class="a" contenteditable>
class a, editable
<div class="b" contenteditable="false">class b
<div class="c">class c
</div>
<div class="d">class d
</div>
</div>
rest of a, editable
</div>