Как выделить текст HTML, не оборачивая его тегами? - PullRequest
5 голосов
/ 29 ноября 2009

Можно ли выделить текст в HTML-документе, используя без обтекания его <span> или каким-либо другим тегом по этому вопросу?

Например, в коде HTML <p>The quick fox</p> я хотел бы выделитьquick но без добавления элемента DOM вокруг него.Добавление элемента DOM к родительскому элементу - это нормально.

Спасибо!

Ответы [ 4 ]

8 голосов
/ 29 ноября 2009

Нет, это невозможно.

Вы не можете сказать браузеру отображать фрагмент текста по-другому, не изменяя DOM по своей сути, независимо от того, выполняете ли вы это статически или динамически (например, с помощью Javascript в качестве этапа постобработки).

2 голосов
/ 30 ноября 2009

Это возможно, если вы используете абсолютно позиционированный элемент с прозрачным повторяющимся фоновым изображением или прозрачным фоновым цветом (используя rgba или hsla) и размещаете его над выделенной областью.

Другим способом сделать это было бы иметь абсолютно позиционированный элемент canvas без фона, который занимал бы всю область просмотра браузера и рисовал прозрачный прямоугольник над выделением.

0 голосов
/ 29 ноября 2009

Единственный способ сделать это, чем я могу себе представить, - это использовать элемент <canvas> и отрисовывать абсолютно все вручную.

0 голосов
/ 29 ноября 2009

Это невозможно.

Если вы просто не хотите использовать теги в исходном исходном коде, это можно сделать, добавив теги позже, используя магию Javascript. Вы могли бы сделать что-то вроде

<p highlight="quick">The quick fox</p>

и напишите JS-функцию JQuery / Prototype / plain, чтобы выделить ее на лету, но зачем и зачем? Если вы укажете немного, у кого-то может появиться идея.

...