我假设你所说的“链接”是指a
元素。如果是这样,那么:
不是。至少在HTML5草案规范中没有:
如果a元素没有href属性,则该元素表示一个占位符,用于放置链接(如果有必要)。
来自HTML 4.01规范:
作者还可以创建一个A元素,不指定锚点,即不指定href、name或id。这些属性的值可以通过脚本在以后设置。
链接必须有 href 属性吗?
是的。没有 href 属性的锚点不是链接。
我问这个问题是因为我有一些像按钮一样通过 ajax 拉出内容的链接。
如果您要这样做,请正确执行。使用 非侵入式 JavaScript 和 pushState 。
只有在使用指针设备并启用 JS 时才起作用的“链接”不是好的链接。
我从 SEO 的角度来提出这个问题。
搜索引擎不会执行您的 JavaScript,因此(取决于 JS 的)伪链接只是它们所关心的虚无之物。
如果您有类似按钮的链接,您应该使用<button>
元素。
不,它并不是。但是如果href未设置,链接可能呈现出不同的外观(下划线和颜色)。
我不确定,但是一段时间以前,我遇到了一个关于没有 href 的 "a" 标签的问题...点击就无法工作。但也许那只是一个旧浏览器的问题。
根据规格说明,如果您省略 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
它们并非绝对必需,但您应该将 href="#/"
作为 href 放置,以使其在语义上正确。如果没有 href=""
属性,则锚点很可能会被解析为页面中的书签,特别是如果指定了 name=""
属性。
#/
,因为仅使用#
会导致浏览器跳转到页面顶部。 - My Head Hurts虽然不是必需的,但您应该将href添加到锚标记中,因为没有href,它们实际上不是锚标记。
您可以向链接添加“#”,并添加onClick ='return false;'以防止单击事件。如果您正在使用JQuery,则可以在链接的单击处理程序中添加event.preventDefault()
。
从SEO的角度来看,我建议使用标题作为锚标记(避免使用负文本缩进属性)。
a@href
。) - Mathias Bynenshref
属性的情况下可以通过验证测试。 - James Allardicehref
属性,那么它甚至都不是一个链接。 - Mathias Bynens