Рассмотрим следующий contenteditable
элементПопытка поставить каретку (кросс-браузер) в конце линии на фокусе
<div contenteditable>
Foo bar <span contenteditable="false"></span>x</div>
Теперь, хорошая вещь происходит здесь в том, что любой браузер вы берете , каретка всегда помещается после x
, если вы щелкнете где-то внутри.
Но, поскольку я не хочу x
в конце строки, и вы удаляете, то поведение, в котором находится карет, отличается (сафари и край странные вещи). Таким образом, я понял, что, когда последняя строка contenteditable
заканчивается span
, который не редактируется у вас будут проблемы, так что я сделал
<div contenteditbale>Foo Bar <span con...="false"><span></span></div>
Что на самом деле не помогает вообще, такое же поведение. Кажется, что каретка не будет отображаться внутри пустого промежутка
Любые предложения, как исправить это?
В моем случае, мне нужно использовать родную каретку, то есть я не могу использовать 'png' –
Включите все, что вы хотите в«содержании». Дело в том, что вы, вероятно, можете использовать псевдоэлемент для достижения своей цели, если я не понимаю, что вы пытаетесь выполнить. Это поместило бы элемент caret после contenteditable div, и ему следует избегать вопроса о создании редактируемого дочернего элемента внутри div. Если место размещения является проблемой, вы можете настроить css на div :: after, чтобы поместить карету там, где она вам нужна (по отношению к исходному div). – DGaffneyDC
А я вижу, я неправильно понял ваш ответ. К сожалению, если я открою его в Safari, например, каретка не будет размещена после не редактируемого диапазона? –