【问题标题】:Is href required on links? [duplicate]链接需要href吗? [复制]
【发布时间】:2012-02-16 18:02:00
【问题描述】:

我问这个是因为我有一些链接,它们的作用类似于通过 ajax 提取内容的按钮,所以我不需要任何 href。

(我是从 SEO 的角度问这个问题)

【问题讨论】:

    标签: html hyperlink seo


    【解决方案1】:

    我假设“链接”只是指a 元素。如果是这样的话:

    没有。至少,不在HTML5 draft specification

    如果a元素没有href属性,则该元素代表a 可能放置链接的位置的占位符,如果它 是相关的。

    来自HTML 4.01 specification

    作者也可以创建一个不指定锚点的 A 元素,即 没有指定 href、name 或 id。这些属性的值 可以在以后通过脚本设置。

    【讨论】:

    • 这不符合 OP 的情况。 OP 不想要占位符链接,她想要一个按钮。 (哦,早期的 HTML 版本也不需要 a@href。)
    • 确实如此。但是,“链接是否需要href”问题的答案是“否”。关于如何使用这些链接的语义问题完全是一个不同的问题。 OP 代码将通过没有 href 属性的验证测试。
    • 嗯,不。从技术上讲,如果它不包含 href 属性,它甚至不是一个链接。
    • 好吧,这又是真的。请参阅我的答案顶部的假设。
    【解决方案2】:

    链接是否需要href?

    是的。没有 href 属性的锚点不是链接。

    我问这个是因为我有一些链接,它们的作用类似于通过 ajax 提取内容的按钮

    如果你正在这样做,那就做对吧。使用Unobtrusive JavaScriptpushState

    只有在您使用指点设备并打开 JS 时才有效的“链接”不是好的链接。

    我是从 SEO 的角度问这个问题

    搜索引擎不会执行你的 JavaScript,所以伪链接(依赖于 JS)就它们而言只是虚无的黑洞)。

    【讨论】:

    • 哎哟 - 有点刺耳,而且似乎太黑白了。
    【解决方案3】:

    如果您有类似按钮的链接,您可能应该使用<button> 元素。

    【讨论】:

      【解决方案4】:

      根据规范,当您省略 href 时,您还会发现浏览器实现了不同的默认样式(例如,不将光标更改为指针)。添加虚拟href的最常见方法是

      href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page
      
      href="javascript:void()" // has the advantage of having no annoying default behaviour
      

      【讨论】:

      • 常见,但很糟糕。不要仅仅因为一百万只苍蝇就在粪肥中玩耍。
      【解决方案5】:

      不,不是。但如果未设置 href,链接可能会呈现不同的(下划线和颜色)。

      【讨论】:

        【解决方案6】:

        我不确定,但前段时间我遇到了不带 href 的“a”的问题...点击不起作用。但也许它只是一个旧的浏览器。

        【讨论】:

          【解决方案7】:

          它们不是绝对必需的,但是您可能应该将 href="#/" 作为 href 以使其在语义上正确。如果没有href="" 属性,则锚点很可能会被解析为页面中的书签,尤其是在指定了name="" 属性的情况下。

          【讨论】:

          • 我建议您使用#/,因为仅使用# 会导致浏览器跳转到页面顶部
          • @MyHeadHurts 感谢您的推荐。编辑了我的答案。
          • 我建议您链接到比不存在的页面部分更有用的东西。
          【解决方案8】:

          虽然不是必需的,但您应该将 href 添加到锚标记,因为没有 href,它们并不是真正的锚标记。

          您可以在链接中添加“#”并添加 onClick='return false;'防止点击事件。如果您使用的是 JQuery,则可以将 event.preventDefault() 添加到链接的点击处理程序中。

          从 SEO 的角度来看,我会为锚标签使用标题(避免使用 -ve text-indent 属性。)

          【讨论】:

            猜你喜欢
            • 2021-09-14
            • 2013-05-31
            • 2013-09-02
            • 1970-01-01
            • 2011-03-01
            • 2011-07-08
            • 2012-04-30
            • 2020-10-03
            • 1970-01-01
            相关资源
            最近更新 更多