How to Render an HTML String Preserving Spaces and Line Breaks

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>