The HTML <pre>
tag is used to render a preformatted text on the browser page.
A preformatted text is a text that preserves the way it’s written in the source file when displayed on web browsers.
For example, the following <p>
element text will be displayed as one line on the browser page:
<p>
Hello, World!
This is Nathan from sebhastian.com
Hope you have a nice day!
</p>
The rendered text will be as shown below:
The result above shows that the spacing and line breaks inside the <p>
tag is ignored by the browser.
However, when you write the same text using the <pre>
tag:
<pre>
Hello, World!
This is Nathan from sebhastian.com
Hope you have a nice day!
</pre>
Then the result will be as follows:
As you can see from the above comparison, any text you wrap using <pre>
tag will be rendered as it’s written in the source HTML file.
The default font for the text will be a monospace font, and any space or line breaks you add inside the <pre>
tag will be rendered on the browser.
A <pre>
tag content width and height is always fixed. If your container element is smaller than the <pre>
element, then the <pre>
tag will ignore the container element size.
To wrap the <pre>
tag content, you need to specify the overflow:auto
CSS property in the container element.
The following example:
<div style="width:150px;height:50px;overflow:auto;">
<pre >
Hello, World!
This is Nathan from sebhastian.com
Hope you have a nice day!
</pre>
</div>
Will be rendered as follows:
The browser automatically creates a horizontal and/or a vertical scrollbar(s) for <pre>
tag content that is bigger than its container.
When to use the pre tag
In the past, the <pre>
tag is used by web designers and developers to display a certain part of a website with unique visual styling.
Today, CSS does a much better job in empowering webmasters to customize the visual style of their websites.
The use of <pre>
tag is less popular nowadays except for programming tutorial websites where the <pre>
tag is used together with the <code>
tag to display multi-line code block examples.