注释/标记任意HTML标记

时间:2011-07-10 19:19:56

标签: html5 dom metadata semantic-markup

解决注释HTML标记和在标记本身中存储标记的问题,<mark>元素作为暂定解决方案而出现。标记内联:

<p>The fox <mark>jumped over</mark> the lazy dog.</p>

我想将这个想法扩展到标记(突出显示)文档中的任意文本片段。不幸的是,遵循这种标记(例如,跨段落)的方法会生成无效的HTML(<mark>期望短语内容)并可能破坏DOM层次结构:

<mark><p>Red Green Blue.</p> <p>Magenta, Cyan,</mark> Black</p>

虽然智能解析器可能会将上述内容转换为:

<p><mark>Red Green Blue.</mark></p> <p><mark>Magenta, Cyan,</mark> Black</p>

它没有保留这样一个事实,即一个段落和第二段的片段有一个标记,而不是两个标记!

在不破坏DOM层次结构的情况下,这样做的最佳,可能是语义的方法是什么?我试图通过DOM / JS API查询这些数据。

1 个答案:

答案 0 :(得分:0)

标记方面唯一可行的解​​决方案是遵循智能解析器的示例。假设只有机器使用时才需要突出显示信息(或者更确切地说,原始突出显示跨越段落的信息),然后可以添加custom data attribute对这些单独的mark元素进行分组:

<p><mark data-mark-group="1">Red Green Blue.</mark></p> <p><mark data-mark-group="1">Magenta, Cyan,</mark> Black</p>

此信息也可能与某种JS一起使用,以指示风格各段的亮点,但我会将其作为练习留给读者。

相关问题