如何突出显示HTML文本而不用标签包装它?

时间:2009-11-29 18:29:09

标签: javascript html dom highlighting highlight

是否可以使用<span>或任何其他标记来突出显示HTML文档中的文本?

例如,在HTML代码<p>The quick fox</p>中,我想强调quick但不在其周围添加DOM元素。将DOM元素添加到父元素就可以了。

谢谢!

4 个答案:

答案 0 :(得分:8)

不,这是不可能的。

您不能告诉浏览器以不同的方式呈现一段文本,而不是固有地更改DOM,无论您是静态还是动态地执行(例如,使用Javascript作为后处理步骤)。

答案 1 :(得分:2)

如果您使用具有透明重复背景图像或透明背景颜色(使用rgba或hsla)的绝对定位元素并将其放置在所选区域上,则可以使用。

另一种方法是使用一个绝对定位的画布元素,不带背景,占据整个浏览器视口,并在选区上绘制透明矩形。

答案 2 :(得分:0)

这是不可能的。

如果您只想在原始源代码中不使用任何标记,则可以稍后使用Javascript魔术添加标记。你可以做点什么

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

并编写一个JQuery / Prototype / plain JS函数来动态突出显示它,但是为什么以及为什么?如果你详细说明一下,有人可能想出一个主意。

答案 3 :(得分:0)

实现这一目标的唯一方法是使用<canvas>元素,并手动渲染绝对所有内容。