解决注释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查询这些数据。
答案 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一起使用,以指示风格各段的亮点,但我会将其作为练习留给读者。