Revision 416431 of <img>

  • Revision slug: Web/HTML/Element/Img
  • Revision title: <img>
  • Revision id: 416431
  • Created:
  • Creator: tregagnon
  • Is current revision? No
  • Comment

Revision Content

Summary

The HTML <img> Element (or HTML Image Element) represents an image of the document.

Usage note:
Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with vision impairments), or if the user chooses not to display images, or if the browser is unable to display the image because it is invalid or an unsupported type. In these cases, the browser may replace the image with the text defined in this element's alt attribute.

  • Content categories Flow content, phrasing content, embedded content, palpable content. If the element has a {{htmlattrxref("usemap", "img")}} attribute, it also is part of the interactive content category.
  • Permitted content None, this is a void element.
  • Tag omission Must have a start tag and must not have an end tag.
  • Permitted parent elements Any element that accepts embedded content.
  • DOM interface {{domxref("HTMLImageElement")}}

Attributes

This element includes the global attributes.

{{htmlattrdef("align")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}
The alignment of the image with respect to its surrounding context.
{{htmlattrdef("alt")}}
This attribute defines the alternative text describing the image. Users will see this displayed if the image URL is wrong, the image is not in one of the supported formats, or until the image is downloaded.

Usage note: Omitting this attribute indicates that the image is a key part of the content, but no textual equivalent is available. Setting this attribute to the empty string indicates that this image is not a key part of the content; non-visual browsers may omit it from the rendering.

{{htmlattrdef("border")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}
The width of a border around the image.
{{htmlattrdef("crossorigin")}} {{HTMLVersionInline(5)}}
This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. CORS-enabled images can be reused in the {{HTMLElement("canvas")}} element without being tainted. The allowed values are:
anonymous
A cross-origin request (i.e. with Origin: HTTP header) is performed. But no credential is sent (i.e. no cookie, no X.509 certificate and no HTTP Basic authentication is sent). If the server does not give credentials to the origin site (by not setting the Access-Control-Allow-Origin: HTTP header), the image will be tainted and its usage restricted..
use-credentials
A cross-origin request (i.e. with Origin: HTTP header) is performed with credential is sent (i.e. a cookie, a certificate and HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through Access-Control-Allow-Credentials: HTTP header), the image will be tainted and its usage restricted.
When not present, the resource is fetched without a CORS request (i.e. without sending the Origin: HTTP header), preventing its non-tainted used in {{HTMLElement('canvas')}} elements. If invalid, it is handled as if the enumerated keyword anonymous was used. See CORS settings attributes for additional information.
{{htmlattrdef("height")}}
The height of the image in {{HTMLVersionInline(5)}} CSS pixels, or {{HTMLVersionInline(4)}} in pixels or as a percentage.
{{htmlattrdef("hspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}
The number of pixels of white space to insert to the left and right of the image.
{{htmlattrdef("ismap")}}
This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.

Usage note: This attribute is allowed only if the <img> element is a descendant of an {{htmlelement("a")}} element with a valid {{htmlattrxref("href","a")}} attribute.

{{htmlattrdef("longdesc")}}{{HTMLVersionInline(4)}} only
The URL of a description of the image to be displayed, which supplements the alt text. In {{HTMLVersionInline(5)}}, use a regular {{HTMLElement("a")}} element to link to the description.
{{htmlattrdef("name")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}
A name for the element. It is supported in {{HTMLVersionInline(4)}} only for backward compatibility. Use the id attribute instead.
{{htmlattrdef("src")}}
Image URL, this attribute is obligatory for the <img> element.
{{htmlattrdef("width")}}
The width of the image in pixels or percent.
{{htmlattrdef("usemap")}}
The partial URL (starting with '#') of an image map associated with the element.

Usage note: You cannot use this attribute if the <img> element is a descendant of an {{htmlelement("a")}} or {{HTMLElement("button")}} element.

{{htmlattrdef("vspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}
The number of pixels of white space to insert to above and below the image.

Supported image formats

The HTML standard doesn't give a list of image format that must be supported, so each user agent supports a different set of formats. Gecko supports:

  • JPEG
  • GIF, including animated GIFs
  • PNG
  • APNG {{gecko_minversion_inline("1.9.2")}}
  • SVG {{gecko_minversion_inline("2.0")}}
  • BMP
  • BMP ICO
  • PNG ICO {{gecko_minversion_inline("9.0")}}

Note:
Support for the XBM format has been removed in Gecko 1.9.2.

Interaction with CSS

Regarding CSS, an <img> is a replaced element. It has no baseline, meaning that, when used in a inline formatting context with {{cssxref("vertical-align")}}: baseline, the bottom of the image will be posed on the container's baseline.

An image may have an intrinsic dimension, but not necessarily, depending of its type. A SVG image has no intrinsic dimension, a raster image has one.

Examples

<img src="image.jpg" alt="An awesome image" />

Specifications

Specification Status Comment
{{SpecName('HTML WHATWG', 'embedded-content-1.html#the-img-element', '<img>')}} {{Spec2('HTML WHATWG')}}  
{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-img-element', '<img>')}} {{Spec2('HTML5 W3C')}}  
{{SpecName('HTML4.01', 'objects.html#h-13.2', '<img>')}} {{Spec2('HTML4.01')}}  

Browser compatibility

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1.0 {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

See also

  • {{HTMLElement("object")}} and {{HTMLElement("embed")}} elements
 
{{HTML:Element_Navigation}}

Revision Source

<h2 id="Summary">Summary</h2>
<p>The <strong>HTML <code>&lt;img&gt;</code> Element</strong> (or <em>HTML Image Element</em>) represents an image of the document.</p>
<div class="note">
  <p><strong>Usage note:</strong><br />
    Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with vision impairments), or if the user chooses not to display images, or if the browser is unable to display the image because it is invalid or an <a href="#Supported_image_formats" title="HTML/Element/Img#Supported_Image_Formats">unsupported type</a>. In these cases, the browser may replace the image with the text defined in this element's <strong>alt</strong> attribute.</p>
</div>
<ul class="htmlelt">
  <li><dfn><a href="/en-US/docs/HTML/Content_categories" title="HTML/Content_categories">Content categories</a></dfn> <a href="/en-US/docs/HTML/Content_categories#Flow_content" title="HTML/Content categories#Flow content">Flow content</a>, <a href="/en-US/docs/HTML/Content_categories#Phrasing_content" title="HTML/Content categories#Phrasing content">phrasing content</a>, embedded content, palpable content. If the element has a {{htmlattrxref("usemap", "img")}} attribute, it also is part of the interactive content category.</li>
  <li><dfn>Permitted content</dfn> None, this is a void element.</li>
  <li><dfn>Tag omission</dfn> Must have a start tag and must not have an end tag.</li>
  <li><dfn>Permitted parent elements</dfn> Any element that accepts embedded content.</li>
  <li><dfn>DOM interface</dfn> {{domxref("HTMLImageElement")}}</li>
</ul>
<h2 id="Attributes">Attributes</h2>
<p><span style="line-height: 21px;">This element includes the&nbsp;</span><a href="https://developer.mozilla.org/en-US/docs/HTML/Global_attributes" style="line-height: 21px;" title="HTML/Global attributes">global attributes</a><span style="line-height: 21px;">.</span></p>
<dl>
  <dt>
    {{htmlattrdef("align")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt>
  <dd>
    The alignment of the image with respect to its surrounding context.</dd>
  <dt>
    {{htmlattrdef("alt")}}</dt>
  <dd>
    This attribute defines the alternative text describing the image. Users will see this displayed if the image URL is wrong, the image is not in one of the <a href="#Supported_image_formats" title="HTML/Element/Img#Supported image formats">supported formats</a>, or until the image is downloaded.
    <div class="note">
      <p><strong>Usage note: </strong>Omitting this attribute indicates that the image <em>is</em> a key part of the content, but no textual equivalent is available. Setting this attribute to the empty string indicates that this image is <em>not</em> a key part of the content; non-visual browsers may omit it from the rendering.</p>
    </div>
  </dd>
  <dt>
    {{htmlattrdef("border")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt>
  <dd>
    The width of a border around the image.</dd>
  <dt>
    {{htmlattrdef("crossorigin")}} {{HTMLVersionInline(5)}}</dt>
  <dd>
    This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. <a href="/en-US/docs/CORS_Enabled_Image" title="CORS_Enabled_Image">CORS-enabled images</a> can be reused in the {{HTMLElement("canvas")}} element without being <em>tainted</em>. The allowed values are:
    <dl>
      <dt>
        anonymous</dt>
      <dd>
        A cross-origin request (i.e. with <code>Origin:</code> HTTP header) is performed. But no credential is sent (i.e. no cookie, no X.509 certificate and no HTTP Basic authentication is sent). If the server does not give credentials to the origin site (by not setting the <code>Access-Control-Allow-Origin:</code> HTTP header), the image will be <em>tainted</em> and its usage restricted..</dd>
      <dt>
        use-credentials</dt>
      <dd>
        A cross-origin request (i.e. with <code>Origin:</code> HTTP header) is performed with credential is sent (i.e. a cookie, a certificate and HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through <code>Access-Control-Allow-Credentials:</code> HTTP header), the image will be <em>tainted</em> and its usage restricted.</dd>
    </dl>
    When not present, the resource is fetched without a CORS request (i.e. without sending the <code>Origin:</code> HTTP header), preventing its non-tainted used in {{HTMLElement('canvas')}} elements. If invalid, it is handled as if the enumerated keyword <strong>anonymous</strong> was used. See <a href="/en-US/docs/HTML/CORS_settings_attributes" title="CORS settings attributes">CORS settings attributes</a> for additional information.</dd>
  <dt>
    {{htmlattrdef("height")}}</dt>
  <dd>
    The height of the image in {{HTMLVersionInline(5)}} CSS pixels, or {{HTMLVersionInline(4)}} in pixels or as a percentage.</dd>
  <dt>
    {{htmlattrdef("hspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt>
  <dd>
    The number of pixels of white space to insert to the left and right of the image.</dd>
  <dt>
    {{htmlattrdef("ismap")}}</dt>
  <dd>
    This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.
    <div class="note">
      <p><strong>Usage note: </strong>This attribute is allowed only if the <code>&lt;img&gt;</code> element is a descendant of an {{htmlelement("a")}} element with a valid {{htmlattrxref("href","a")}} attribute.</p>
    </div>
  </dd>
  <dt>
    {{htmlattrdef("longdesc")}}{{HTMLVersionInline(4)}} only</dt>
  <dd>
    The URL of a description of the image to be displayed, which supplements the <strong>alt</strong> text. In {{HTMLVersionInline(5)}}, use a regular {{HTMLElement("a")}} element to link to the description.</dd>
  <dt>
    {{htmlattrdef("name")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt>
  <dd>
    A name for the element. It is supported in {{HTMLVersionInline(4)}} only for backward compatibility. Use the <strong>id</strong> attribute instead.</dd>
  <dt>
    {{htmlattrdef("src")}}</dt>
  <dd>
    Image URL, this attribute is obligatory for the <code>&lt;img&gt;</code> element.</dd>
  <dt>
    {{htmlattrdef("width")}}</dt>
  <dd>
    The width of the image in pixels or percent.</dd>
  <dt>
    {{htmlattrdef("usemap")}}</dt>
  <dd>
    The partial URL (starting with '#') of an <a href="/en-US/docs/HTML/Element/map" title="HTML/Element/Map">image map</a> associated with the element.
    <div class="note">
      <p><strong>Usage note: </strong>You cannot use this attribute if the <code>&lt;img&gt;</code> element is a descendant of an {{htmlelement("a")}} or {{HTMLElement("button")}} element.</p>
    </div>
  </dd>
  <dt>
    {{htmlattrdef("vspace")}} {{deprecatedGeneric('inline','HTML4.01')}}, {{obsoleteGeneric('inline','HTML5')}}</dt>
  <dd>
    The number of pixels of white space to insert to above and below the image.</dd>
</dl>
<h2 id="Supported_image_formats">Supported image formats</h2>
<p>The HTML standard doesn't give a list of image format that must be supported, so each user agent supports a different set of formats. Gecko supports:</p>
<ul>
  <li><a class="external" href="http://en.wikipedia.org/wiki/JPEG" title="http://en.wikipedia.org/wiki/JPEG">JPEG</a></li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format" title="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">GIF</a>, including animated GIFs</li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/Portable_Network_Graphics" title="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a></li>
  <li><a href="/en-US/docs/Animated_PNG_graphics" title="Animated PNG graphics">APNG</a> {{gecko_minversion_inline("1.9.2")}}</li>
  <li><a href="/en-US/docs/SVG" title="SVG">SVG</a> {{gecko_minversion_inline("2.0")}}</li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/BMP_file_format" title="http://en.wikipedia.org/wiki/BMP_file_format">BMP</a></li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/ICO_%28file_format%29" title="http://en.wikipedia.org/wiki/ICO_%28file_format%29">BMP ICO</a></li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/ICO_%28file_format%29" title="http://en.wikipedia.org/wiki/ICO_%28file_format%29">PNG ICO</a> {{gecko_minversion_inline("9.0")}}</li>
</ul>
<div class="note">
  <p><strong>Note:</strong><br />
    Support for the <a class="external" href="http://en.wikipedia.org/wiki/X_BitMap" title="http://en.wikipedia.org/wiki/X_BitMap">XBM</a> format has been removed in Gecko 1.9.2.</p>
</div>
<h2 id="Interaction_with_CSS">Interaction with CSS</h2>
<p>Regarding CSS, an <code>&lt;img&gt;</code> is a <a href="/en-US/docs/CSS/Replaced_element" title="CSS/Replaced_element">replaced element</a>. It has no baseline, meaning that, when used in a inline formatting context with {{cssxref("vertical-align")}}<code>: baseline</code>, the bottom of the image will be posed on the container's baseline.</p>
<p>An <em>image</em> may have an intrinsic dimension, but not necessarily, depending of its type. A SVG image has no intrinsic dimension, a raster image has one.</p>
<h2 id="Examples">Examples</h2>
<pre class="brush: html">
&lt;img src="image.jpg" alt="An awesome image" /&gt;
</pre>
<h2 id="Specifications" name="Specifications">Specifications</h2>
<table class="standard-table">
  <thead>
    <tr>
      <th scope="col">Specification</th>
      <th scope="col">Status</th>
      <th scope="col">Comment</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>{{SpecName('HTML WHATWG', 'embedded-content-1.html#the-img-element', '&lt;img&gt;')}}</td>
      <td>{{Spec2('HTML WHATWG')}}</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>{{SpecName('HTML5 W3C', 'embedded-content-0.html#the-img-element', '&lt;img&gt;')}}</td>
      <td>{{Spec2('HTML5 W3C')}}</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>{{SpecName('HTML4.01', 'objects.html#h-13.2', '&lt;img&gt;')}}</td>
      <td>{{Spec2('HTML4.01')}}</td>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">Browser compatibility</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Chrome</th>
        <th>Firefox (Gecko)</th>
        <th>Internet Explorer</th>
        <th>Opera</th>
        <th>Safari (WebKit)</th>
      </tr>
      <tr>
        <td>Basic support</td>
        <td>1.0</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
      </tr>
    </tbody>
  </table>
</div>
<div id="compat-mobile">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Feature</th>
        <th>Android</th>
        <th>Firefox Mobile (Gecko)</th>
        <th>IE Phone</th>
        <th>Opera Mobile</th>
        <th>Safari Mobile</th>
      </tr>
      <tr>
        <td>Basic support</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
        <td>{{CompatVersionUnknown}}</td>
      </tr>
    </tbody>
  </table>
</div>
<h2 id="See_also">See also</h2>
<ul>
  <li>{{HTMLElement("object")}} and {{HTMLElement("embed")}} elements</li>
</ul>
<div>
  &nbsp;</div>
<div>
  {{HTML:Element_Navigation}}</div>
Revert to this revision