This article needs a technical review. How you can help.
Our volunteers haven't translated this article into عربي yet. Join us and help get the job done!
The HTML Anchor
Element (<a>
) defines a hyperlink to a location on the same page or any other page on the Web. It can also be used (in an obsolete way) to create an anchor point—a destination for hyperlinks within the content of a page, so that links aren't limited to connecting simply to the top of a page.
<a href="https://developer.mozilla.org">MDN</a>
Content categories | Flow content, phrasing content, interactive content, palpable content. |
---|---|
Permitted content | Transparent, containing either flow content (excluding interactive content) or phrasing content. |
Tag omission | None, both the starting and ending tag are mandatory. |
Permitted parent elements | Any element that accepts phrasing content, or any element that accepts flow content. |
DOM interface | HTMLAnchorElement |
Attributes
This element includes the global attributes.
download
HTML5- This attribute, if present, indicates that the author intends the hyperlink to be used for downloading a resource so that when the user clicks on the link they will be prompted to save it as a local file. If the attribute has a value, the value will be used as the pre-filled file name in the Save prompt that opens when the user clicks on the link (the user can change the name before actually saving the file of course). There are no restrictions on allowed values (though
/
and\
will be converted to underscores, preventing specific path hints), but you should consider that most file systems have limitations with regard to what punctuation is supported in file names, and browsers are likely to adjust file names accordingly.Note:
- Can be used with
blob:
URLs anddata:
URLs, to make it easy for users to download content that is generated programmatically using JavaScript (e.g. a picture created using an online drawing Web app). - If the HTTP header
Content-Disposition:
is present and gives a different filename than this attribute, the HTTP header has priority over this attribute. - If this attribute is present and
Content-Disposition:
is set toinline
, Firefox gives priority toContent-Disposition
, like for the filename case, while Chrome gives priority to thedownload
attribute. - This attribute is only honored for links to resources with the same-origin.
- Can be used with
href
- This was the single required attribute for anchors defining a hypertext source link, but the attribute may now be omitted (as of HTML5) in order to create a placeholder link. A <a>placeholder link</a> presents itself like a traditional hyperlink but when activated does not result in redirection to a new page or a sub-section of the same document. The
href
is still required when specifying a link target, either a URL or a URL fragment. A URL fragment is a name preceded by a hash mark (#), which specifies an internal target location (an ID of an HTML element) within the current document. URLs are not restricted to Web (HTTP)-based documents. URLs might use any protocol supported by the browser. For example,file
,ftp
, andmailto
work in most user agents.Note: You can use the special fragment "top" to create a link back to the top of the page; for example
<a href="#top">Return to top</a>
. This behavior is specified by HTML5. hreflang
- This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by BCP47 for HTML5 and by RFC1766 for HTML4. Use this attribute only if the
href
attribute is present. ping
HTML5- The 'ping' attribute, if present, sends the URLs of the resources a notification/ping if the user follows the hyperlink.
referrerpolicy
- A string indicating which referrer to use when fetching the resource:
'no-referrer'
meaning that theReferer:
header will not be sent.'no-referrer-when-downgrade'
meaning that noReferer:
header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent’s default behavior, if no policy is otherwise specified.'origin'
meaning that the referrer will be the origin of the page, that is roughly the scheme, the host and the port.'origin-when-cross-origin'
meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.'unsafe-url'
meaning that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.
rel
- For anchors containing the href attribute, this attribute specifies the relationship of the target object to the link object. The value is a space-separated list of link types values. The values and their semantics will be registered by some authority that might have meaning to the document author. The default relationship, if no other is given, is void. Use this attribute only if the href attribute is present.
target
- This attribute specifies where to display the linked resource. In HTML4, this is the name of, or a keyword for, a frame. In HTML5, it is a name of, or keyword for, a browsing context (for example, tab, window, or inline frame). The following keywords have special meanings:
_self
: Load the response into the same HTML4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified._blank
: Load the response into a new unnamed HTML4 window or HTML5 browsing context._parent
: Load the response into the HTML4 frameset parent of the current frame or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as_self
._top
: In HTML4: Load the response into the full, original window, canceling all other frames. In HTML5: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as_self
.
Note: When using target you should consider adding
rel="noopener noreferrer"
to avoid exploitation of thewindow.opener
API. type
- This attribute specifies the media type in the form of a MIME type for the link target. Generally, this is provided strictly as advisory information; however, in the future a browser might add a small icon for multimedia types. For example, a browser might add a small speaker icon when type is set to audio/wav. For a complete list of recognized MIME types, see https://www.w3.org/TR/html4/references.html#ref-MIMETYPES. Use this attribute only if the
href
attribute is present.
Obsolete
charset
Obsolete since HTML5- This attribute defines the character encoding of the linked resource. The value is a space- and/or comma-delimited list of character sets as defined in RFC 2045. The default value is ISO-8859-1.
Usage note: This attribute is obsolete in HTML5 and should not be used by authors. To achieve its effect, use the HTTP Content-Type header on the linked resource.
coords
HTML 4 only, Obsolete since HTML5- For use with object shapes, this attribute uses a comma-separated list of numbers to define the coordinates of the object on the page.
name
HTML 4 only, Obsolete since HTML5- This attribute is required in an anchor defining a target location within a page. A value for name is similar to a value for the id core attribute and should be an alphanumeric identifier unique to the document. Under the HTML 4.01 specification, id and name both can be used with the <a> element as long as they have identical values.
Usage note: This attribute is obsolete in HTML5, use global attribute id instead.
rev
HTML 4 only, Obsolete since HTML5- This attribute specifies a reverse link, the inverse relationship of the rel attribute. It is useful for indicating where an object came from, such as the author of a document.
shape
HTML 4 only, Obsolete since HTML5- This attribute is used to define a selectable region for hypertext source links associated with a figure to create an image map. The values for the attribute are
circle
,default
,polygon
, andrect
. The format of the coords attribute depends on the value of shape. Forcircle
, the value isx,y,r
wherex
andy
are the pixel coordinates for the center of the circle andr
is the radius value in pixels. Forrect
, the coords attribute should bex,y,w,h
. Thex,y
values define the upper-left-hand corner of the rectangle, whilew
andh
define the width and height respectively. A value ofpolygon
for shape requiresx1,y1,x2,y2,...
values for coords. Each of thex,y
pairs defines a point in the polygon, with successive points being joined by straight lines and the last point joined to the first. The valuedefault
for shape requires that the entire enclosed area, typically an image, be used.
Non standard
datafld
- This attribute specifies the column name from that data source object that supplies the bound data.
Usage note: This attribute is non-standard and should not be used by authors. To achieve its effect, use scripting and a mechanism such as XMLHttpRequest to populate the page dynamically
Support Gecko Presto WebKit Trident Not implemented Not implemented Not implemented IE4, IE5, IE6, IE7 (Removed in IE8) Normative document Microsoft's Data Binding: dataFld Property (MSDN) datasrc
- This attribute indicates the ID of the data source object that supplies the data that is bound to this element.
Usage note: This attribute is non-standard and should not be used by authors. To achieve its effect, use scripting and a mechanism such as XMLHttpRequest to populate the page dynamically.
Support Gecko Presto WebKit Trident Not implemented Not implemented Not implemented IE4, IE5, IE6, IE7 (Removed in IE8) Normative document Microsoft's Data Binding: dataSrc Property (MSDN) methods
- The value of this attribute provides information about the functions that might be performed on an object. The values generally are given by the HTTP protocol when it is used, but it might (for similar reasons as for the title attribute) be useful to include advisory information in advance in the link. For example, the browser might choose a different rendering of a link as a function of the methods specified; something that is searchable might get a different icon, or an outside link might render with an indication of leaving the current site. This attribute is not well understood nor supported, even by the defining browser, Internet Explorer 4. Methods Property (MSDN)
urn
- This supposedly Microsoft-supported attribute relates a uniform resource name (URN) with the link. While it is based on standards work years back, the meaning of URNs is still not well defined, so this attribute is meaningless. urn Property (MSDN)
Examples
Linking to an external location
<!-- anchor linking to external file --> <a href="https://www.mozilla.com/"> External Link </a>
Result
Linking to another section on the same page
<!-- anchor link to section on this page named id="attr-href" --> <a href="#attr-href"> Description of Same-Page Links </a>
Result
Description of Same Page Links
Creating a clickable image
This small example use an image to link to the MDN home page. The home page will open in a new browsing context, that is a new page or a new tab.
<a href="https://developer.mozilla.org/en-US/" target="_blank"> <img src="https://mdn.mozillademos.org/files/6851/mdn_logo.png" alt="MDN logo" /> </a>
Result
Creating an email link
It's common to create buttons or links that will open in the user's email program to allow them to send a new message. This is done by using a mailto
link. Here's a simple example:
<a href="mailto:[email protected]">Send email to nowhere</a>
This results in a link that looks like this: Send email to nowhere.
For additional details about the mailto
URL scheme, such as how to include the subject, body, or other predetermined content, see Email links or RFC 6068.
Creating a phone link
With phones viewing web documents and laptops being connected to phones offering clickable phone links becomes increasingly helpful.
<a href="tel:+491570156">+49 157 0156</a>
For additional details about the tel
URL scheme, see RFC 2806 and RFC 2396.
Using the download attribute to save a canvas as a PNG
If you want to allow a user to download an HTML Canvas as an image you can create a link with a download attribute and the canvas data as a file 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);
You can see this in action https://jsfiddle.net/codepo8/V6ufG/2/
Specifications
Specification | Status | Comment |
---|---|---|
Referrer Policy The definition of 'referrer attribute' in that specification. |
Working Draft | Added the referrer attribute. |
WHATWG HTML Living Standard The definition of '<a>' in that specification. |
Living Standard | |
HTML5 The definition of '<a>' in that specification. |
Recommendation | |
HTML 4.01 Specification The definition of '<a>' in that specification. |
Recommendation |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | 1.0 (1.7 or earlier) [1] | (Yes) | (Yes) | (Yes) |
href="#top" |
(Yes) | 10.0 (10.0) | (Yes) | (Yes) | (Yes) |
download | 14 | 20.0 (20.0) | Edge 13 [4] | 15 | No support |
ping |
(Yes) | No support [2] | No support | (Yes) | No support |
referrerpolicy |
46.0 [3] | 50 (50) | No support | No support | No support |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | 1.0 (1.0) [1] | (Yes) | (Yes) | (Yes) | (Yes) |
href="#top" |
(Yes) | ? | 10.0 (10.0) | (Yes) | (Yes) | (Yes) | ? |
download | (Yes) | ? | 20.0 (20.0) | No support | ? | No support | ? |
ping |
? | ? | No support [2] | ? | ? | ? | ? |
referrerpolicy |
No support | 46.0 [3] | 50.0 (50.0) | No support | No support | No support | 46.0 [3] |
[1] Starting from Gecko 41 (Firefox 41.0 / Thunderbird 41.0 / SeaMonkey 2.38), <a>
without href
attribute is no more classified as interactive content. Clicking it inside <label>
will activate labelled content (bug 1167816).
[3] Implemented behind a flag.
[4] Attempting to download data URIs causes Edge to crash until v14.14357.
Clicking and focus
Whether clicking on an <a>
causes it to (by default) become focused varies by browser and OS.
Desktop Browsers | Windows 8.1 | OS X 10.9 |
---|---|---|
Firefox 30.0 | Yes | Yes |
Chrome ≥39 (Chromium bug 388666) |
Yes | Yes |
Safari 7.0.5 | N/A | Only when it has a tabindex |
Internet Explorer 11 | Yes | N/A |
Presto (Opera 12) | Yes | Yes |
Mobile Browsers | iOS 7.1.2 | Android 4.4.4 |
---|---|---|
Safari Mobile | Only when it has a tabindex |
N/A |
Chrome 35 | ??? | Only when it has a tabindex |
Notes
The following are reserved browser key bindings for the two major browsers and should not be used as values to accesskey: a, c, e, f, g, h, v, left arrow, and right arrow.
HTML 3.2 defines only name, href, rel, rev, and title.
The target attribute is not defined in browsers that do not support frames, such as Netscape 1 generation browsers. Furthermore, target is not allowed under strict variants of XHTML but is limited to frameset or transitional forms.
JavaScript recommendations
It is often the case that an anchor tag is used with the onclick
event. In order to prevent the page from refreshing, href is often set to either "#" or "javascript:void(0)". Both of these values can lead to some unexpected errors when copying links and opening links in a new tab and/or window. Be aware of this for usability reasons, and when users do use anchor tags and you prevent default behavior.
See also
- Other elements conveying text-level semantics:
<abbr>
,<em>
,<strong>
,<small>
,<cite>
,<q>
,<dfn>
,<time>
,<code>
,<var>
,<samp>
,<kbd>
,<sub>
,<sup>
,<b>
,<i>
,<mark>
,<ruby>
,<rp>
,<rt>
,<bdo>
,<span>
,<br>
,<wbr>
.