代码之家  ›  专栏  ›  技术社区  ›  Polynomial

是否有标准或首选的标签类型,用于向位置添加额外的锚/片段链接?

  •  0
  • Polynomial  · 技术社区  · 4 年前

    我现在有一个 id 属性,以便可以使用直接链接到文档中该节的哈希片段生成URL。例如:

    <h2 id="section3.4">Section 3.4 - Foo</h2>
    

    当然,这将作为 page.html#section3.4 .

    我想为该片段提供另一种格式,例如。 page.html#s3.4 .准确的格式是任意的,在这里并不重要。

    显然,为了实现这一点,不能简单地将多个ID标记应用于单个HTML元素。解决方案似乎是在页面与标题相同的位置添加一个辅助标记,例如:

    <h2 id="section3.4">Section 3.4 - Foo</h2><xyz id="s3.4"></xyz>
    

    是否有用于此目的的标准或首选标签类型?环顾四周,我惊讶地发现没有“最佳实践”的答案。

    从技术上讲,标记类型是任意的,因为任何元素 身份证件 属性应该起作用,但是 canvas 或 script 例如,这显然是愚蠢的。我见过 a 建议,但我不确定这在语义上是否正确,因为 A. 是用来做锚的 到 地点,不是 是 地点。

    我的一个想法是把 section 标记的ID是目标,但这不会启用任意数量的备用片段名称,而且从技术上讲,它不会链接到同一位置,因为边界框受CSS约束。

    我觉得理想的元素应该保证在DOM上没有视觉存在,与相邻元素保持相同的垂直位置,没有副作用,并且作为位置标记具有语义意义,同时也不会对可访问性产生任何影响(例如屏幕阅读器)。然而,我想不出这样的元素。有没有我错过的标准?如果不是,哪个标签可能是最好的选择?

    0 回复  |  直到 4 年前
        1
  •  0
  •   Sean    4 年前

    在内联上下文中,使用 <span> 元素将文本包装在适当的标题内。

    <h2 id="section3.4"><span id="s3.4">Section 3.4 - Foo</span></h2>
    

    在块上下文中,使用 <div> .

    两者在语义上都是中立的。这种方法可以确保标题文本得到适当的关注,而不管使用哪个片段标识符。