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

HTML文档的URL“片段标识符”语义

  •  6
  • Pointy  · 技术社区  · 7 年前

    我一直在使用新安装的“MoinMoin”wiki软件。当我在玩它的时候,输入了大部分随机的测试页面,我创建了一个带有片段的链接

    blah blah see also [[SomeStuff#whatever|some other stuff about whatever]]
    

    然后我需要弄清楚如何为“whatever”片段标识符创建锚点。我不记得在MediaWiki上必须这么做,所以我不得不四处挖掘,但最后我发现MoinMoin有一个“锚定”宏:

    == Whatever ==
    <<Anchor(whatever)>>
    

    <span> 标记“id”值为“whatever”。我以为会是一个 <a> 标记“name”属性为“whatever”。我四处搜寻找到了消息来源,有评论说他们从 < 标签,以避免一些IE的问题 <pre> 部分。这让我困惑——不是因为IE的事情,而是因为在我看来,他们的“修复”似乎让整个锚机制彻底崩溃了。

    然而,更让我惊讶的是,进一步的测试表明它运行良好。我用300写了一个测试页 <跨度> <a> 标签。当我改变了所有的习惯时,它也起了作用 <跨度> 标记到 <em> .

    所以这个时候,你要么和我一样惊讶,要么你在想“一个愚蠢的人怎么会有这么多的声望点?”如果你属于第二类,那么我真的用HTML打了15年了吗 许多 我没注意到浏览器使用HTML片段来查找 有一个匹配“id”的元素?

    精神状态:崩溃

    2 回复  |  直到 16 年前
        1
  •  4
  •   Alohci    16 年前

    HTML4.01非常清楚。。。

    12.2.3 Anchors with the id attribute
    
    The id attribute may be used to create an anchor at the start tag of any element
    (including the A element).
    
    This example illustrates the use of the id attribute to position an anchor in an 
    H2 element. The anchor is linked to via the A element.
    
    You may read more about this in <A href="#section2">Section Two</A>.
    ...later in the document
    <H2 id="section2">Section Two</H2>
    ...later in the document
    <P>Please refer to <A href="#section2">Section Two</A> above
    for more details.
    

    如果有什么安慰的话,你并不孤单。最近有人评论了我的另一个答案,说了同样的话。

    它是从HTML4开始的,所以如果你在1998/9年之前学会了HTML,那么与其他变化相比,这个变化并不是一个主要的变化,因此也不是最容易注意到的。直到2001年我才真正开始学习HTML,所以HTML4是我开始学习的地方。

        2
  •  1
  •   Pekka    16 年前

    我也不知道。不过,这是官方的。从 HTML 4.01 spec :

    或任何其他元素(使用id属性命名) .

    Wikipedia

    在HTML应用程序中, http://www.foo.org/foo.html#bar 引用具有id属性的元素,该元素在由URI标识的文档中具有值栏(即id=“bar”) http://www.foo.org/foo.html

    推荐文章