---
title:
slug: Web/HTML/Element/a
tags:
- Element
- HTML
- HTML text-level semantics
- Reference
- Web
- 元素
translation_of: Web/HTML/Element/a
---
HTML <a>
元素(或称锚元素)可以通过它的 href
属性创建通向其他网页、文件、同一页面内的位置、电子邮件地址或任何其他 URL 的超链接。<a>
中的内容应该应该指明链接的意图。如果存在 href
属性,当 <a>
元素聚焦时按下回车键就会激活它。
内容分类 | 流内容、文字内容、交互内容、可触摸内容。 |
---|---|
允许的内容 | 可见的内容(Transparent),包含流内容(不包括交互式内容)或文字内容(phrasing content)。 |
标签省略 | {{no_tag_omission}} |
允许的父元素 | 接受短语内容的任何元素或接受流内容的任何元素,但始终不接受 <a> 元素(根据对称的逻辑原理,如果 <a> 标记作为父元素,不能具有交互内容,则相同的 <a> 内容不能具有 <a> 标记作为其父元素)。 |
Permitted ARIA roles | {{ARIARole("button")}}, {{ARIARole("checkbox")}}, {{ARIARole("menuitem")}}, {{ARIARole("menuitemcheckbox")}}, {{ARIARole("menuitemradio")}}, {{ARIARole("option")}}, {{ARIARole("radio")}}, {{ARIARole("switch")}}, {{ARIARole("tab")}}, {{ARIARole("treeitem")}} |
DOM 接口 | {{domxref("HTMLAnchorElement")}} |
该元素的属性包含全局属性。
/
和 \
会被转换为下划线。大多数文件系统限制了文件名中的标点符号,故此,浏览器将相应地调整建议的文件名。
blob:
URL 和 data:
URL ,以方便用户下载使用 JavaScript 生成的内容(例如使用在线绘图 Web 应用程序创建的照片)。Content-Disposition
被设置为inline(即 Content-Disposition='inline'
),那么 Firefox 优先考虑 HTTP 头 Content-Disposition
download 属性。file:
、ftp:和mailto:。
注意: 可以使用 href="#top"
或者 href="#"
链接返回到页面顶部。这种行为是 HTML5 的特性。
"no-referrer"
表示 Referer:
头将不会被发送。"no-referrer-when-downgrade"
表示当从使用HTTPS的页面导航到不使用 TLS(HTTPS)的来源 时不会发送 Referer:
头。如果没有指定策略,这将是用户代理的默认行为。"origin"
表示 referrer将会是页面的来源,大致为这样的组合:主机和端口(不包含具体的路径和参数的信息)。'strict-origin-when-cross-origin'
"unsafe-url"
表示 referrer将会包含源和路径(domain + path)(但是不包含密码或用户名的片段)。这种情况是不安全的,因为它可能会将安全的URLs数据泄露给不安全的源。_self
: 当前页面加载,即当前的响应到同一HTML 4 frame(或HTML5浏览上下文)。此值是默认的,如果没有指定属性的话。_blank
: 新窗口打开,即到一个新的未命名的HTML4窗口或HTML5浏览器上下文_parent
: 加载响应到当前框架的HTML4父框架或当前的HTML5浏览上下文的父浏览上下文。如果没有parent框架或者浏览上下文,此选项的行为方式与 _self
相同。_top
: IHTML4中:加载的响应成完整的,原来的窗口,取消所有其它frame。 HTML5中:加载响应进入顶层浏览上下文(即,浏览上下文,它是当前的一个的祖先,并且没有parent)。如果没有parent框架或者浏览上下文,此选项的行为方式相同_self注意:在 <a>
元素上使用 target="_blank"
隐式提供了与使用 rel="noopener"
相同的 rel
行为,即不会设置 window.opener
。
Note: Linking to another page using target="_blank"
will run the new page on the same process as your page. If the new page is executing expensive JS, your page's performance may suffer. To avoid this use rel=noopener
.
使用说明: 在 HTML5 中该属性已作废,不应使用。 为了实现其效果,使用HTTP content - type header的链接资源。
使用说明: 该属性在 HTML5中是过时的, 使用 全局属性 id 来代替。
<!-- anchor linking to external file --> <a href="http://www.mozilla.com/"> External Link </a>
<!-- links to element on this page with id="attr-href" --> <a href="#属性"> Description of Same-Page Links </a>
这个小例子使用图像链接到MDN主页。主页将在新的浏览环境,这是一个新的页面或新标签中打开研究。
<a href="https://developer.mozilla.org/en-US/"> <img src="https://mdn.mozillademos.org/files/6851/mdn_logo.png" alt="MDN logo" /> </a>
这是常见的创建按钮或链接,将用户的电子邮件程序打开,让他们发送新邮件。这是通过使用一个mailto链接完成的。这里有一个简单的例子:
<a href="mailto:nowhere@mozilla.org">Send email to nowhere</a>
生成这样的链接: Send email to nowhere.
有关mailto URL方案的更多细节,比如如何包含主题,正文,或其他预定内容,参考 Email links or {{RFC(6068)}}.
提供电话链接有助于用户查看连接到手机的网络文档和笔记本电脑。
<a href="tel:+491570156">+49 157 0156</a>
更详细的语法请参考 {{RFC(3966)}}。
<canvas>
保存为 PNG 格式如果你想允许用户下载一个HTML画布,你可以创建一个下载属性和画布数据作为文件URL链接图像:
var link = document.createElement('a'); link.innerHTML = 'download image'; link.addEventListener('click', function(ev) { link.href = canvas.toDataURL(); link.download = "mypainting.png"; }, false); document.body.appendChild(link);
可以查看这个例子 https://jsfiddle.net/codepo8/V6ufG/2/
html 3.2 只定义 name, href, rel, rev, 和 title 属性。
锚点标签常常通过将 href 属性设置为 "#"
或 "javascript:void(0)" 来创造一个能阻止页面刷新的伪按钮的方式
被滥用。 这些属性值会在拖动 / 复制链接时导致意外行为,在新窗口 / 新标签打开链接,加入书签以及 JavaScript 仍在下载时会出现错误或被禁用。这也会向辅助技术(如屏幕阅读器)传达不正确的语义。在这些情况下,推荐使用 {{HTMLElement("button")}} 来代替。通常情况下,您应该只将锚点用于正常的 URL 导航。
点击一个 {{HTMLElement("a")}} 标签是否会出现 focus 取决于浏览器和操作系统。
桌面浏览器 | Windows 8.1 | OS X 10.9 |
---|---|---|
Firefox 30.0 | 是 | 是 |
Chrome ≥39 (Chromium bug 388666) |
是 | 是 |
Safari 7.0.5 | 不可用 | 仅当包含 tabindex 属性时 |
Internet Explorer 11 | 是 | 不可用 |
Presto (Opera 12) | 是 | 是 |
移动浏览器 | iOS 7.1.2 | Android 4.4.4 |
---|---|---|
Safari Mobile | 仅当包含 tabindex 属性时 |
不可用 |
Chrome 35 | 未知 | 仅当包含 tabindex 属性时 |
Specification | Status | Comment |
---|---|---|
{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrer attribute')}} | {{Spec2('Referrer Policy')}} | Added the referrer attribute. |
{{SpecName('HTML WHATWG', 'text-level-semantics.html#the-a-element', '<a>')}} | {{Spec2('HTML WHATWG')}} | |
{{SpecName('HTML5 W3C', 'textlevel-semantics.html#the-a-element', '<a>')}} | {{Spec2('HTML5 W3C')}} | |
{{SpecName('HTML4.01', 'struct/links.html#h-12.2', '<a>')}} | {{Spec2('HTML4.01')}} |
{{Compat("html.elements.a")}}