Code has been added to clipboard!

Adding HTML Space: Options and Examples

Reading time 4 min
Published Aug 21, 2019
Updated Jan 23, 2020

TL;DR – HTML space can be used to separate textual, visual, or other page elements.

Non-breakable Space in HTML

When you’re writing your text in, say, Microsoft Word, you can easily add multiple spaces in a line. HTML does not allow that. It has a feature called whitespace collapse: no matter how many spaces you type, the browser will reduce them to a single space.

So, how to add space in HTML? The easiest option is the non-breakable space entity, and there are two ways to add it:

Example
 
 

You can include it to add an uncollapsible HTML blank space between words, images, or other page elements. It will also prevent an unwanted line break. For example, in the code snippet below, you can see how to add space in HTML numbers as the thousands separator, and also ensure the browser does not break it up:

Example
There are 9 000 000 bicycles in Beijing.

Try not to use the non-breakable space in HTML too much: without line breaks, your browser might need a horizontal scroll bar. This doesn’t help the user experience. You also shouldn’t use it to create indents, align the characters, or otherwise manipulate their position in the page. Instead, use CSS stylesheets.

Other Options in HTML for Space

In some cases, you may want to add space in HTML to separate parts of your text. The non-breakable space is really not an option in this case. You should use either a <br> tag for a line break or wrap your paragraphs in <p> tags to define them as separate:

Example
Knock, knock!<br>
Who’s there?

<p>The knock-knock joke contains questions and answers. It typically ends with a punny punchline.</p>

<p>The joker says "Knock, knock!", as if they are knocking on the door of a house. The recipient then has to answer by asking who’s there.</p>

One more way to keep all the HTML blank space you typed is preformatting your text by wrapping it in <pre> tags:

Example
<pre>
                              __
                     /\    .-" /
                    /  ; .'  .' 
                   :   :/  .'   
                    \  ;-.'     
       .--""""--..__/     `.    
     .'           .'    `o  \   
    /                    `   ;  
   :                  \      :  
 .-;        -.         `.__.-'  
:  ;          \     ,   ;       
'._:           ;   :   (        
    \/  .__    ;    \   `-.     
     ;     "-,/_..--"`-..__)    
     '""--.._:

<pre>

Preformatting text keeps all HTML spaces and blank lines just as you typed them. Thus, it is useful when you need to convey some visual meaning. In the example above, you see an ASCII image. You can also use <pre> for writing addresses, poems, and other texts that follow a certain format.

By default, browsers display preformatted text in a fixed-width font. However, you can change that using CSS.

CSS Alternatives for HTML Blank Space

The ways to add a space in HTML discussed above are useful, but you should not rely on them for styling and modifying the position of elements. Instead, check out these CSS properties:

  • margin adds HTML space around an element (outside the borders).
  • padding adds HTML space around an element’s content (inside the borders).
  • text-align aligns text according to the chosen value (left, right, center, or justify).
  • text-indent adds HTML space in front of the first text line.

Using a CSS stylesheet is much more convenient when you need your styling to be consistent. You only need to adjust one line for the changes to affect the whole page, instead of going through each paragraph.

HTML Space: Useful Tips

  • You can use shortcuts to add a non-breakable space in most word processors. Try Option+Space for MacOS, Ctrl+Shift+Space for MS Word or OpenOffice, and Ctrl+Alt+Space for Windows (alternatively, you can hold Alt and press 0160 on the number pad).
  • You can also include two or four spaces at once by typing &ensp; or &emsp;.
  • Non-breakable spaces can also be useful in HTML tables. Adding one to an otherwise empty cell can prevent a table from collapsing in browsers that don’t support empty cells.
  • If you decide to use CSS properties to add blank space, avoid defining values in absolute units. They won’t adapt to font or screen size changes, so use percentages and em units for better responsiveness.
Basics
Introduction
Syntax
Editors
Basic Examples
Head Section
<!DOCTYPE>
Tags and Elements
Semantic Elements
Tags Reference
Attributes
Comments
Block and Inline Elements
Forms
Form Elements
Input
Responsive Web Design
Inline Scripts
Uniform Resource Locator
Redirect
XHTML
Geolocation
Drag and Drop
Local Storage
Web Workers
Server-Sent Events
Character Encoding
Text Formatting
Quotation and Citation Elements
Headings
Paragraphs
Links
Tables
Lists
Symbols
Space
Tab
Styles
Computer Code
Layout
Classes
Colors
Images
iframes
Audio Player
Video Player
YouTube Videos
Multimedia
Canvas
SVG
<!-- -->
<a>
<abbr>
<acronym> DEPRECATED
<address>
<applet> DEPRECATED
<article>
<aside>
<audio>
<b>
<base>
<basefont> DEPRECATED
<bdi>
<bdo>
<big> DEPRECATED
<blink> DEPRECATED
<blockquote>
<body>
<br>
<button>
<canvas>
<caption>
<center> DEPRECATED
<cite>
<code>
<col>
<colgroup>
<datalist>
<dd>
<del>
<details>
<dfn>
<dialog>
<dir> DEPRECATED
<div>
<dl>
<dt>
<em>
<embed>
<fieldset>
<figcaption>
<figure>
<font> DEPRECATED
<footer>
<form>
<frame> DEPRECATED
<frameset> DEPRECATED
<h1> – <h6>
<head>
<header>
<hr>
<html>
<i>
<iframe>
<img>
<input>
<ins>
<kbd>
<keygen> DEPRECATED
<label>
<legend>
<li>
<link>
<main>
<map>
<mark>
<menu>
<menuitem> DEPRECATED
<meta>
<meter>
<nav>
<noframes> DEPRECATED
<noscript>
<object>
<ol>
<optgroup>
<option>
<output>
<p>
<param>
<pre>
<progress>
<q>
<rp>
<rt>
<ruby>
<s>
<samp>
<script>
<section>
<select>
<small>
<source>
<span>
<strike> DEPRECATED
<strong>
<style>
<sub>
<summary>
<sup>
<table>
<tbody>
<td>
<tfoot>
<th>
<thead>
<time>
<title>
<tr>
<track>
<tt> DEPRECATED
<u>
<ul>
<var>
<video>
<wbr>