17

我正在尝试链接到我页面的 HTML 中的元素,但它不起作用,我不确定为什么。

这是初始链接:

<ul>
        <a href="#"><li>About Me</li></a>
        <a href="#"><li>Past</li></a>
        <a href="#Work"><li>Work</li></a>
        <a href="http://blog.tommaxwell.me"><li>Blog</li></a>
    </ul>

我希望此列表中的所有 li 都链接到页面上的其他位置(最后一个除外)。

在这段代码的顶部是我试图链接到的地方:

<div id="Work">
    <a name="Work"><h2 id="work-title">Work</h2></a>
        <ul>
            <li>
                <h3>BrainDB</h3>
                <p>BrainDB is a new startup I'm working on with my co-founder, <a href="http://www.twitter.com/masonlong" id="mason">@masonlong</a>. I write everything from Rails to AngularJS and CSS. BrainDB's goal is to augment the mind with useful and inviting services.</p>
            </li>

            <li>
                <h3 id>SummarizeIt</h3>
                <p><a href="http://54.225.211.118/" id="summarize">SummarizeIt</a> is a JavaScript project that I built during a weekend. It utilizes an API for summarizing content, like blog posts, into bit-sized chunks. </p>
            </li>

            <li>
                <h3>Freelance</h3>
                <p>I freelance from time to time. I work with personal clients, as well as through <a href="https://www.elance.com/s/tommaxwell/?utm_medium=social&utm_source=twitter&utm_campaign=free&SiteTarget=share_profile&utm_term=3712117" id="elance">Elance</a>. I'm <a href="mailto:tommaxwell95@gmail.com" id="email">available</a>.</p>
            </li>
        </ul>
    </div>

我链接的区域是否必须使用 section 标签?我有多个带有 ul 的这些 div。

4

8 回答 8

15

这一点很重要。<base>如果锚的 href 是页面相关的(以 开头),锚将不会在所有页面上工作,在头部(但根页面)中有标签#

例如,您在页面上:

https://example.com/the/page/

页面上的基本标签如下:

<base href="https://example.com">

在此页面的代码中有一个锚点:

<a href="#anc">anchor</a>

使用 base-tag 它将跟随https://example.com/#anc,而不是预期的。

要解决此问题,您可以执行以下操作之一:

  1. 使用域相关的锚。
  2. 使用 javascript 重载锚点点击并将 url 交换为域相关。
  3. 删除基本标签 - 它通常未被使用。
于 2017-10-10T19:16:20.110 回答
9

嗨,你必须使用 'a id' 才能被 'a href' 调用

这是示例:

<a href="#Works">My Works</a>

它会调用:

<a id="Works">Works</a>

演示

于 2013-06-27T04:28:39.377 回答
4

锚点需要有 Work 的 ID 或名称,但您使用了两次。

HTML 标签 - 链接

<a href="#Anchorname">linked text</a>

(Target point) 
<a name="Anchorname">a named anchor</a>
于 2013-06-27T04:29:09.077 回答
3

尝试这个。

<a href="#About"></a>

现在,如果您想将其链接到底部某处。

<a name="About">(Make Sure There Is Not Text here)</a>About Section.
于 2013-06-27T04:53:40.687 回答
2

像这样在 li 标签内使用锚标签。

<ul>
    <li><a href="#id">about</a></li>
    <li><a href="#work">work</a></li>
    <li><a href="#id">blog</a></li>
</ul>

像这样的东西和你的链接ID如下

<div id="work">
</div>
于 2013-06-27T04:47:00.697 回答
2

我今天遇到了这个问题。另外我想平滑滚动到锚点,这拯救了我的一天。可以像@Alexander Goncharov 在他的回答中指出的那样指出“问题”。

document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function (e) {
        e.preventDefault();

        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});

我在这里找到了这个解决方案

于 2020-07-29T14:49:17.440 回答
1

我也遇到了这个问题(使用链接进行相同的页面导航)并且解决方案非常简单(虽然很难弄清楚)。我希望这会有所帮助——我还检查了 IE、Firefox 和 Chrome,它可以全面运行(截至 2019 年 5 月 22 日)。

您的链接应如下所示:

<a href="pagename.html##anchorname">Word as link you want people to click</a>

你的锚应该是这样的:

<a name="#anchorname">Spot you want to appear at top of page once link is clicked</a>
于 2019-05-22T20:16:00.820 回答
0

就我而言,我发现了这个解决方法:

代替

<base target=_blank>

我放在那里:

<base href=. target=_blank>

修改后,文件的外部链接正确跳转到了锚点:

http://domainov.us/directorovich/filovskaja.html#anchorovna

于 2021-03-06T09:05:17.437 回答