Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to add spaces in HTML

Understanding Spaces in HTML

HTML, or Hyper Text Markup Language, is the backbone of any web page you see on the internet. Today we're going to focus specifically on one aspect of HTML - handling spaces. To keep things simple, think of writing a HTML document like writing a letter. There are times when you want to add extra spaces for readability or to emphasize certain parts.

In a typical text editor, creating extra spaces is as simple as hitting the space bar a few times. But in HTML, it's a little different. If you've ever tried to add multiple spaces in HTML just by tapping the spacebar, you may have noticed something odd. No matter how many spaces you type, when the HTML document is displayed in a web browser, all your extra spaces collapse into a single space.

Why Doesn't HTML Recognize Multiple Spaces?

This has to do with how HTML deals with white space, which is a term programmers use to refer to any character that's not visible - spaces, tabs, and line breaks. In HTML, multiple white spaces are collapsed into a single space for efficiency. Imagine if every space you added caused a tiny bit of extra data to be transferred every time someone loaded your webpage.

That's because HTML is a markup language, not a layout language. A markup language is used to structure and present text, while a layout language is used to control how things appear on a page. Therefore, HTML is not designed to handle detailed layout tasks like managing the exact number of spaces between characters.

Using HTML Entities for Additional Spaces

To add more than one space in HTML, you need to use an HTML entity called  , which stands for "non-breaking space". This entity tells the browser to display an extra space and not to break (or wrap) a line at that point.

Here's an example:

<p>This is an example&nbsp;&nbsp;&nbsp;of using multiple spaces.</p>

When you view this in a browser, you'll see:

This is an example   of using multiple spaces.

Notice how the three &nbsp; entities create three extra spaces in the sentence.

When to Use &nbsp;

While &nbsp; can be a handy tool, it's important to use it judiciously. A webpage littered with &nbsp; entities can be hard to read and manage. It's also not the most efficient way to manage spaces between larger elements like paragraphs or sections, as it can lead to inconsistent results across different browsers and devices.

Using CSS for Space Management

A more modern and efficient way to manage spaces in HTML is by using CSS (Cascading Style Sheets). CSS is a style-sheet language used for describing the look and formatting of a document written in HTML. It's like the director of a play, telling the actors (HTML elements) where to go on the stage.

Let's say you want to add space between two paragraphs. Instead of adding &nbsp; entities at the end of the first paragraph, you can use CSS to add a "margin" (space outside of an element) or "padding" (space inside of an element).

Here's an example:

    p {
        margin-bottom: 20px;

<p>This is the first paragraph.</p>
<p>This is the second paragraph.</p>

In this example, margin-bottom: 20px; adds a 20-pixel space beneath every paragraph element (<p>). When viewed in a browser, there will be a noticeable gap between the two paragraphs.

Understanding pre Tag

Another way to preserve multiple spaces in HTML is by using the <pre> tag. The <pre> tag tells the browser to present text exactly as it's written, including multiple spaces, line breaks, and tabs.

Here's an example:

    This    text    has    multiple    spaces    between    words.

The output will be:

    This    text    has    multiple    spaces    between    words.


While HTML collapses multiple spaces into a single space, there are ways around it. You can use the &nbsp; entity, CSS properties, or the <pre> tag to control spaces in your HTML documents. However, remember that excessive use of the &nbsp; entity can make your code harder to read and manage. Instead, it's generally better to use CSS for managing spaces and layout on your webpage. Happy coding!