
Все мы с этим сталкивались, не правда ли?
Когда хочешь выделить текст, а браузер как будто сопротивляется.
Под катом- объяснение причины подобного поведения браузеров и один из путей решения этой проблемы.
Определение положения выделения
Выделять текст на основе визуальной картинки- слишком затратная операция, и поэтому современные браузеры при выделении текста опираются на DOM модель. Opera на движке Presto- исключение, в ней использовались другие алгоритмы, позволяющие выделять текст без траты нервных клеток, но, к сожалению, в Opera Next этот механизм не был воспроизведён.
Заглянем в веб- инспектор и видим стандартную картину:

Обычное дело, отступ многих блоков задаётся одной обёрткой, простая экономия времени верстальщика. К чему это приводит?
При выделении браузер находит верхний слой с текстом. При движении курсора за пределы блока браузер выделяет текст выше/ниже по DOM дереву. А ведь DOM далеко не всегда совпадает с отображаемой иерархией элементов! Вот и получается, что поведение браузеров при выделении текста не соответствует ожидаемому.