2016-12-01 1 views
0

У меня есть простой contenteditable разметка:Contenteditable: предотвратить внутренний элемент от удаления

<div class="example" contenteditable="true"> 
    <div class="inside">Some content</div> 
</div> 

Когда я удалить «Some content», то class="inside" ДИВ также будет удален. Есть ли способ предотвратить удаление внутреннего div при удалении содержимого?

Например, это взгляд, который я пытаюсь сделать после удаления содержимого.

<div class="example" contenteditable="true"> 
    <div class="inside"></div> <!-- The div is not deleted --> 
</div> 

Я огляделся, но не похоже, что есть ясный ответ.

Любая помощь будет очень признательна.

спасибо.

+0

https://jsfiddle.net/rzm156px/ он не будет удален. –

+0

Хм. Это странно. в Chrome все удаляется, кроме верхнего div с 'contenteditable' attr. –

+0

Нет. Что-то в вашем css, нарушающем код. –

ответ

1

.inside, .example { 
 
    display: inline; 
 
}
<div class="example" contenteditable="true"> 
 
    <div class="inside">Some content</div> 
 
</div>

Может быть, есть стиль, который является элементом инлайн-уровня.

Поскольку ширина будет 0% при удалении содержимого. Вы не можете щелкнуть его снова или добавить какой-либо контент.

Итак, мое решение будет

.inside, .example { 
    display: block; 
} 

Вы можете указать ширину, если вы хотите. :)

.inside, .example { 
 
    display: block; 
 
}
<div class="example" contenteditable="true"> 
 
    <div class="inside">Some content</div> 
 
</div>

+0

Если вы проверите элемент (в хроме), внутренний div будет удален в обоих случаях. –

+0

@steveKim да. Теперь я понимаю ваш вопрос. Извините, но есть ли особая причина, почему вы не хотите использовать текстовое поле? –

+0

Благодарим вас за помощь. Я думал об использовании textarea, но мне нужно иметь некоторую разметку html внутри поля ввода, а textarea не позволяет внутри html-элемента. (Для лучшего управления входными данными). –

 Смежные вопросы

  • Нет связанных вопросов^_^