同一页面内的锚点不起作用?

时间:2013-06-27 04:21:02

标签: html html5 anchor

我正在尝试链接到我页面的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标签?我有多个这些div,其中包含ul。

8 个答案:

答案 0 :(得分:5)

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

例如,您在页面上:

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

页面上的基本标记如下:

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

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

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

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

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

  1. 使用域相对锚。
  2. 使用javascript重载锚点击并将域名交换为域相关。
  3. 删除基本代码 - 通常是未使用的。

答案 1 :(得分:3)

锚点需要具有工作的ID或名称,但您正在使用它两次。

HTML Tags - links

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

(Target point) 
<a name="Anchorname">a named anchor</a>

答案 2 :(得分:3)

试试这个。

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

现在,如果你想将它链接到某个地方。

<a name="About">(Make Sure There Is Not Text here)</a>About Section.

答案 3 :(得分:2)

嗨,你必须使用'a id'来调用'a href'

以下是示例:

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

它会打电话:

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

Demo

答案 4 :(得分: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>

答案 5 :(得分:0)

我也遇到了这个问题(使用链接进行相同的页面导航),并且解决方案非常简单(尽管很难弄清楚)。我希望这会有所帮助-我也检查了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>

答案 6 :(得分:0)

我今天遇到了这个问题。另外,我想平滑滚动到锚点,这节省了我的时间。可以在标签中指出“问题”,就像@Alexander Goncharov在回答中指出的那样。

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

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

我找到了此解决方案here

答案 7 :(得分:0)

就我而言,我找到了这个解决方法:

代替

<base target=_blank>

我放在那里:

<base href=. target=_blank>

经过这次修改后,文件的外链正确跳转到了锚点:

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