W3docs

How to Render an HTML String Preserving Spaces and Line Breaks

In this tutorial, you can learn how to render an HTML text preserving spaces and line breaks. You need to use the HTML <pre> tag or the CSS white-space property.

Solution with the HTML <pre> tag

The HTML <pre> which is used to put a preformatted text into an HTML document preserves spaces and line breaks of the text.

Example of preserving spaces and line breaks of a text with the HTML <pre> tag:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <pre>Lorem Ipsum is simply           dummy text
      of the printing and typesetting industry.
                            Lorem Ipsum has been the industry's 
      standard dummy text ever since the 1500s....
    </pre>
  </body>
</html>

Solution with the CSS white-space property

The CSS white-space property determines how the white space is handled inside an element.

In the example below, we add our text in a <div> element and then set the white-space property to "pre-wrap" for it.

Example of preserving spaces and line breaks with the CSS white-space property on a <div>:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        white-space: pre-wrap;
      }
    </style>
  </head>
  <body>
    <div>
      Lorem Ipsum is simply dummy text of 
           the printing and typesetting industry. 
        Lorem Ipsum has been the industry's      standard dummy text ever 
        since the                           1500s, when an unknown
         printer took                      
          a galley of type and           scrambled it to make a type specimen book.
    </div>
  </body>
</html>

We can use the same method by using a <span> element instead of a <div>.

Example of preserving spaces and line breaks with the CSS white-space property on a <div>:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      span {
        white-space: pre-wrap;
      }
    </style>
  </head>
  <body>
    <span>
      Lorem Ipsum is simply dummy text of 
                 the printing and typesetting industry.
        Lorem Ipsum has been the industry's     standard dummy text ever 
         since the                             1500s, when an unknown 
           printer took
             a galley of type and                        scrambled it
                to make a type specimen book.
    </span>
  </body>
</html>

If you don’t want the first lines of each paragraph indented, you can try the following example where we use the "pre-line" value of the white-space property.

Example of removing indentation with the "pre-line" value of the white-space property:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        white-space: pre-line;
      }
    </style>
  </head>
  <body>
    <div>
      Lorem Ipsum is simply dummy text of 
                    the printing and typesetting industry. 
        Lorem Ipsum has been the industry's       standard dummy text ever 
      since the                       1500s, when an unknown
       printer took     
         a galley of type and 
               scrambled it to make a type specimen book.
    </div>
  </body>
</html>