Модель выбора / диапазона IE основана на индексах в текстовом содержимом, независимо от границ элементов. Я считаю, что может быть невозможно установить фокус ввода внутри встроенного элемента без текста в нем. Конечно, в вашем примере я не могу установить фокус внутри последнего элемента, нажимая клавиши со стрелками.
Это почти работает, если вы установите для каждого диапазона значение display: block
, хотя все еще существует довольно странное поведение, зависящее от наличия пробела в родительском элементе. Взламывая дисплей, чтобы он выглядел встроенным с помощью таких хитростей, как float, inline-block и абсолютное положение, IE обрабатывает каждый элемент как отдельный блок редактирования. Относительно расположенные элементы блоков рядом друг с другом работают, но это, вероятно, нецелесообразно.
Если вам станет легче, IE9 наконец исправит эту неприятность и примет стандартную модель диапазона. (Ура!)
допустимо иметь пробелы в последнем узле, если каретка находится в самом начале.
Я бы, наверное, так и сделал, если только эксперт по выбору IE не придумает ничего лучшего. (Зовет Тима!)