如何链接到页面的一部分?(哈希?

How do I link to part of a page? (hash?)

提问人:Haroldo 提问时间:5/14/2010 最后编辑:hippietrailHaroldo 更新时间:7/5/2023 访问量:463074

问:

您如何链接(与)以便浏览器转到目标页面上的某些副标题而不是顶部?<a>

HTML XHTML 锚点

评论


答:

374赞 Daniel DiPaolo 5/14/2010 #1

如果有任何带有(例如,>)的标签,那么您只需附加到 URL。否则,您不能任意链接到页面的某些部分。id<div id="foo"#foo

下面是一个完整的示例:<a href="http://example.com/page.html#foo">Jump to #foo on page.html</a>

在同一页面上链接内容示例:<a href="#foo">Jump to #foo on same page</a>

它称为 URI 片段

评论

1赞 akantoword 5/20/2016
那么你是使用完整的示例还是相同的页面示例?完整的例子不是一回事吗?
2赞 iraj jelodari 9/14/2016
如果我们有一个 RESTful 页面,其 URL 如下所示:如何在 HREF 中使用 ID?domain.com/#home?page=1
1赞 tomsmeding 11/15/2016
@irajjelodari 你会把哈希放在最后:domain.com/?page=1#home
1赞 iraj jelodari 11/19/2016
我不得不在 URL 中使用 2 个主题标签,例如:.一个用于路由,一个用于当前页面内的导航。最后,我使用了 URL 的 html5 模式来删除路由主题标签;) @tomsmedingexample.com/#RouteName?page=1#ID
0赞 4/13/2019
@Daniel先生,我也有类似的情况,如果元素处于隐藏状态怎么办?#foo
15赞 Daniel Vassallo 5/14/2010 #2

您有两种选择:

您可以在文档中放置一个锚点,如下所示:

<a name="ref"></a>

或者,你给任何 HTML 元素一个 id:

<h1 id="ref">Heading</h1>

然后,只需将哈希附加到链接的 URL 即可跳转到所需的引用。例:#ref

<a href="document.html#ref">Jump to ref in document.html</a>
25赞 Sarfraz 5/14/2010 #3

方法如下:

<a href="#go_middle">Go Middle</a>

<div id="go_middle">Hello There</div>
53赞 Michael Aaron Safyan 5/14/2010 #4

使用锚点和哈希。例如:

链接目标:

 <a name="name_of_target">Content</a>

链接到目标:

 <a href="#name_of_target">Link Text</a>

或者,如果从其他页面链接:

 <a href="http://path/to/page/#name_of_target">Link Text</a>

评论

15赞 Cyrille 10/17/2014
Broser 还将跳转到任何带有 id 的元素。您无需使用标签作为目标。所以另一个目标可能是.name_of_target<a><h3 id='name_of_target'>Content</h3>
14赞 Tim 6/12/2016
请注意,这在 HTML5 中现已过时。
7赞 melds 7/27/2021
为了澄清 Tim 的评论,片段链接和空的“a”标签在 HTML5 中仍然是最新的。不推荐使用“name”标签,取而代之的是“id”。html.spec.whatwg.org/multipage/browsing-the-web.html#navigate
41赞 Felix Kling 5/14/2010 #5

只需将带有元素 ID 的哈希附加到 URL 即可。例如

<div id="about"></div>

http://mysite.com/#about

因此,链接将如下所示:

<a href="http://mysite.com/#about">About</a>

或者只是

<a href="#about">About</a>
45赞 Abderrahmane TAHRI JOUTI 5/10/2020 #6

2020 年 3 月 12 日,WICG 为文本片段添加了草稿,现在您可以通过将以下内容添加到哈希中来链接到页面上的文本,就像在搜索它一样

#:~:text=<Text To Link to>

工作实例:Chrome Version 81.0.4044.138

点击此链接应重新加载页面并突出显示链接的文本

评论

0赞 DanielT 2/7/2023
我刚刚在Firefox中尝试过这个,它突出显示了文本,除非文本在我的<hr>标签中,但这并没有像在Chrome中那样向下滚动到页面中的文本,也没有像锚点那样向下滚动。此外,重新加载该 URL 似乎不会做任何事情,即使在滚动到页面上的不同位置后也是如此,但离开页面并返回到带有该参数的 URL 再次起作用(在 Chrome 中)。我希望这更一致......你有这个逻辑的链接和相关吗?
0赞 DanielT 2/7/2023
它仅是基于 Chromium 的功能。我发现这个网站有更多内容:mgearon.com/html/text-fragments
1赞 Brett Donald 2/14/2023
检查是否可以使用浏览器支持的当前状态
0赞 Digdarshan Kunwar 7/27/2020 #7

前提是任何元素在网页上都具有 id 属性。 可以简单地链接/跳转到标签引用的元素。

在同一页中:

<div id="markOne"> ..... </div> 
   ......
<a href="#markOne">Jump to markOne</a> 

其他页面:

<div id="http://randomwebsite.com/mypage.html#markOne"> 
  Jumps to the markOne element in the mypage of the linked website
</div>

目标不一定具有定位元素。

你可以去看看这个小提琴

0赞 tanaydin 7/5/2023 #8

此外,您可以在 Frame 或 iframe src 属性中使用它。

所以

<iframe src="page.html#content">

如果该 ID 在文档中退出,则会将页面带到该点。