The HTML <pre>
element represents preformatted text which is to be presented exactly as written in the HTML file. The text is typically rendered using a non-proportional ("monospace") font. Whitespace inside this element is displayed as written.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Content categories | Flow content, palpable content. |
Permitted content | Phrasing content. |
Tag omission | None, both the starting and ending tag are mandatory. |
Permitted parents | Any element that accepts flow content. |
Implicit ARIA role | No corresponding role |
Permitted ARIA roles | Any |
DOM interface | HTMLPreElement
|
Attributes
This element only includes the global attributes.
cols
' '- Contains the preferred count of characters that a line should have. It was a non-standard synonym of
width
. To achieve such an effect, use CSSwidth
instead. width
'- Contains the preferred count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS
width
instead. wrap
'- Is a hint indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS
white-space
instead.
Example
HTML
<p>Using CSS to change the font color is easy.</p>
<pre>
body {
color: red;
}
</pre>
Result
Accessibility concerns
It is important to provide an alternate description for any images or diagrams created using preformatted text. The alternate description should clearly and concisely describe the image or diagram's content.
People experiencing low vision conditions and browsing with the aid of assistive technology such as a screen reader may not understand what the preformatted text characters are representing when they are read out in sequence.
A combination of the <figure>
and <figcaption>
elements, supplemented by a combination of an id
and the ARIA role
and aria-labelledby
attributes allow the preformatted text to be announced as an image, with the figcaption
serving as the image's alternate description.
Example
<figure role="img" aria-labelledby="cow-caption"> <pre> ___________________________ < I'm an expert in my field. > --------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || </pre> <figcaption id="cow-caption"> A cow saying, "I'm an expert in my field." The cow is illustrated using preformatted text characters. </figcaption> </figure>
- MDN Understanding WCAG, Guideline 1.1 explanations
- H86: Providing text alternatives for ASCII art, emoticons, and leetspeak | W3C Techniques for WCAG 2.0
Specifications
Specification | Status | Comment |
---|---|---|
HTML Living StandardThe definition of '<pre>' in that specification. | Living Standard | No significant change from HTML5 |
HTML5The definition of '<pre>' in that specification. | Recommendation | No significant change from HTML 4.01 Specification |
HTML 4.01 SpecificationThe definition of '<pre>' in that specification. | Recommendation | Deprecated the cols attribute
|
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
pre
|
Chrome
Full support Yes |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support Yes |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support Yes |
Chrome Android
Full support Yes |
Firefox Android
Full support 4 |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support Yes |
|
Chrome
No support No |
Edge
No support No |
Firefox
No support 1 — 29 |
IE
No support No |
Opera
No support No |
Safari
No support No |
WebView Android
No support No |
Chrome Android
No support No |
Firefox Android
No support 4 — 29 |
Opera Android
No support No |
Safari iOS
No support No |
Samsung Internet Android
No support No |
|
Chrome Full support Yes Full support Yes Notes' Specifying the |
Edge Full support 12 Full support 12 Notes' Specifying the |
Firefox Full support 1 Full support 1 Notes' Since Firefox 29, specifying the |
IE Full support Yes Full support Yes Notes' Specifying the |
Opera Full support Yes Full support Yes Notes' Specifying the |
Safari Full support Yes Full support Yes Notes' Specifying the |
WebView Android Full support Yes Full support Yes Notes' Specifying the |
Chrome Android Full support Yes Full support Yes Notes' Specifying the |
Firefox Android Full support 4 Full support 4 Notes' Since Firefox 29, specifying the |
Opera Android Full support Yes Full support Yes Notes' Specifying the |
Safari iOS Full support Yes Full support Yes Notes' Specifying the |
Samsung Internet Android Full support Yes Full support Yes Notes' Specifying the |
|
Chrome
? |
Edge
? |
Firefox
Full support 1 |
IE
? |
Opera
? |
Safari
? |
WebView Android
? |
Chrome Android
? |
Firefox Android
Full support 4 |
Opera Android
? |
Safari iOS
? |
Samsung Internet Android
? |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Non-standard. Expect poor cross-browser support.'
- Non-standard. Expect poor cross-browser support.
- Deprecated. Not for use in new websites.'
- Deprecated. Not for use in new websites.
- See implementation notes.'
- See implementation notes.
See also
- CSS:
white-space
,word-break
- Related element:
<code>
<pre>: The Preformatted Text element by Mozilla Contributors is licensed under CC-BY-SA 2.5.