Заставить контентное содержимое внутри div или p

Кто-нибудь знает, как заставить содержимое contenteditable div окружать div или p? Если содержимое contenteditable является пустым div - выбор его с диапазоном работает, например, в Firefox, но в chrome текст вставляется перед div. Мне нужен текст

HTML:
<div id="edit" contenteditable="true"><div id="insert"></div></div>

Tried this but the results are very inconsistent cross browser:

var range = document.createRange();
range.selectNodeContents(document.getElementById('insert'));

var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);

Второй вопрос: возможно ли это каким-то образом для пустого contentEditable, можно ли это также использовать для ручной вставки новой строки, чтобы никогда не получить теги ‹br/› вместо нового div или p?

Спасибо

Обновить

Кажется, в какой-то степени работает следующее:

<div id="edit" contenteditable="true"><div id="insert"><br/></div></div>

С дополнительными ‹br/› Firefox, Chrome, Safari все генерируют одну пустую строку, где весь ввод заканчивается внутри div, но Internet Explorer (протестированная версия 9) показывает две пустые строки. Если нет другого доступного решения - есть идеи, как исправить это без использования обнаружения браузера?


person Fionn    schedule 08.10.2011    source источник
comment
Я искал ответ на этот вопрос больше месяца, чтобы исправить кучу ошибок, все еще присутствующих в Firefox. Thx u thx u thx u.   -  person Ash Blue    schedule 27.04.2014


Ответы (1)


Вы можете переопределить тег br в своем файле css.

br {
    display:block;
    clear: both;
    height: 1em;
    line-height: 1em;
}

Я не совсем уверен, что em будет работать. Если нет, вам также придется попробовать формат px.

person Umur Kontacı    schedule 12.10.2011