The HTML <figure>
element represents self-contained content, frequently with a caption (<figcaption>
),
and is typically referenced as a single unit. While it is related to the main flow, its position is independent of the main flow. Usually this is an image, an illustration, a diagram, a code snippet, or a schema that is referenced in the main text, but that can be moved to another page or to an appendix without affecting the main flow.
Usage notes:
- Being a sectioning root, the outline of the content of the <figure> element is excluded from the main outline of the document.
- A caption can be associated with the
<figure>
element by inserting a<figcaption>
inside it (as the first or the last child).
Content categories | Flow content, sectioning root, palpable content. |
---|---|
Permitted content | A <figcaption> element, followed by flow content; or flow content followed by a <figcaption> element; or flow content. |
Tag omission | None, both the starting and ending tag are mandatory. |
Permitted parent elements | Any element that accepts Flow content. |
DOM interface | HTMLElement |
AttributesEdit
This element only includes the global attributes.
ExamplesEdit
Example 1
<!-- Just a figure -->
<figure>
<img src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png" alt="An awesome picture">
</figure>
<p></p>
<!-- Figure with figcaption -->
<figure>
<img src="https://developer.cdn.mozilla.net/media/img/mdn-logo-sm.png" alt="An awesome picture">
<figcaption>Fig1. MDN Logo</figcaption>
</figure>
<p></p>


Example 2
<figure>
<figcaption>Get browser details using navigator</figcaption>
<pre>
function NavigatorExample() {
var txt;
txt = "Browser CodeName: " + navigator.appCodeName;
txt+= "Browser Name: " + navigator.appName;
txt+= "Browser Version: " + navigator.appVersion ;
txt+= "Cookies Enabled: " + navigator.cookieEnabled;
txt+= "Platform: " + navigator.platform;
txt+= "User-agent header: " + navigator.userAgent;
}
</pre>
</figure>
function NavigatorExample() {
var txt;
txt = "Browser CodeName: " + navigator.appCodeName;
txt+= "Browser Name: " + navigator.appName;
txt+= "Browser Version: " + navigator.appVersion ;
txt+= "Cookies Enabled: " + navigator.cookieEnabled;
txt+= "Platform: " + navigator.platform;
txt+= "User-agent header: " + navigator.userAgent;
}
Example 3
<figure>
<figcaption><cite>Edsger Dijkstra :-</cite></figcaption>
<p>"If debugging is the process of removing software bugs, <br /> then programming must be the process of putting them in"</p>
</figure>
"If debugging is the process of removing software bugs,
then programming must be the process of putting them in"
Example 4
<figure> element could be used to markup a poem.
<figure>
<p>
Depression is running through my head,<br>
These thoughts make me think of death,<br>
A darkness which blanks my mind,<br>
A walk through the graveyard, what can I find?....
</p>
<figcaption><cite>Depression</cite>. By: Darren Harris</figcaption>
</figure>
SpecificationsEdit
Specification | Status | Comment |
---|---|---|
WHATWG HTML Living Standard The definition of '<figure>' in that specification. |
Living Standard | |
HTML5 The definition of '<figure>' in that specification. |
Recommendation |
Browser compatibilityEdit
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 8 | 4.0 (2.0) | 9.0 | 11.10 | 5.1 |
See alsoEdit
- The
<figcaption>
element.