askvity

How Do You Put a Space Between Two Inline Elements in HTML?

Published in HTML Element Spacing 5 mins read

You can effectively add space between two inline elements in HTML using CSS properties like margin and padding, or by employing HTML character entities such as  .

Creating visual space between elements is a common requirement in web development. While browsers automatically add space between words in text, spacing between specific inline elements (like <span>, <a>, <strong>, <em>, etc.) often requires explicit definition. Leveraging CSS is the standard and most flexible approach, although HTML entities offer a direct way to insert character-level space.

Methods for Adding Space

Based on common practices and the provided references, here are the primary ways to add space between inline elements:

1. Using CSS Margin

The CSS margin property is a powerful tool for adding external spacing around elements. For inline elements, margin-left or margin-right can be applied to create space between them. This is a recommended method for layout control.

  • Concept: Adds space outside the element's border.
  • Application: Apply margin-right to the first inline element or margin-left to the second inline element.
  • Reference: This corresponds to "1) Using Margin for External Spacing" from the provided reference.
<style>
  .space-right {
    margin-right: 10px; /* Adds 10 pixels of space to the right */
  }
</style>

<span>Element 1</span>
<span class="space-right">Element 2</span>
<span>Element 3</span>

2. Using CSS Padding

The CSS padding property adds internal spacing within an element, between its content and border. While primarily for internal space, padding-left or padding-right on inline elements can still push adjacent content away, effectively creating separation.

  • Concept: Adds space inside the element, but right/left padding on inline elements affects adjacent content layout.
  • Application: Apply padding-right to the first inline element or padding-left to the second inline element.
  • Reference: This corresponds to "2) Using Padding for Internal Spacing" from the provided reference.
<style>
  .space-padding {
    padding-right: 8px; /* Adds 8 pixels of internal space, pushing content */
  }
</style>

<span>Item A</span>
<span class="space-padding">Item B</span>
<span>Item C</span>

(Note: For inline elements, vertical padding/margins do not affect line height or the position of subsequent content on other lines, but horizontal padding/margins do affect spacing on the same line.)

3. Using HTML Character Entities

HTML provides special character entities to represent various symbols and whitespace. Non-breaking space entities are commonly used to insert explicit space characters.

  • &nbsp; (Non-Breaking Space): Adds a standard single character space that prevents a line break at its position. This is the most frequently used.

  • &ensp; (En Space): Adds a space equal to the width of the letter 'n'.

  • &emsp; (Em Space): Adds a space equal to the width of the letter 'm' (typically equivalent to the current font size).

  • Concept: Inserts character-based visual space directly in the HTML content.

  • Application: Place the entity directly between the two inline elements.

  • Reference: This corresponds to "1) Non-Breaking Space (&nbsp;)" and "2) Multiple Non-Breaking Spaces (&ensp; & &emsp;)" from the provided reference.

<span>Word1</span>&nbsp;<span>Word2</span>
<span>Section A</span>&ensp;<span>Section B</span>
<span>Header X</span>&emsp;<span>Header Y</span>

Less Common/Unsuitable Methods from Reference

Other items mentioned in the reference are generally not the direct or ideal methods for adding horizontal space between two inline elements on the same line:

  • Text Indentation (text-indent): Applies to the first line of a block-level element (like <p>), not for spacing between inline elements.
  • Preformatted Text (<pre> tag): Preserves whitespace and line breaks within its content, but typically renders as a block element and is not suitable for just adding space between existing inline elements.
  • Line Break (<br> tag): Forces a line break, moving the second element to the next line, rather than adding horizontal space between them on the same line.
  • Paragraph (<p> tag): A block-level element used for paragraphs. Putting two inline elements inside separate <p> tags would place them on different lines with paragraph spacing, not side-by-side with horizontal space.

Comparison Table

Choosing the right method depends on your needs for control, semantics, and ease of maintenance. CSS methods are generally preferred for layout control.

Method Type Granularity & Control Semantic Meaning Best Use Case
CSS Margin CSS High (precise pixels, ems, etc.) Layout separation Standard for visual spacing, responsive designs
CSS Padding CSS High (precise pixels, ems, etc.) Internal space impacting layout Similar to margin, can affect box model/backgrounds
&nbsp;, etc. HTML Low (character-based spacing) Character/Space Adding small, fixed gaps; preventing line breaks

For robust and maintainable styling, CSS (margin or padding) is the recommended approach. HTML entities are useful for simple, inline adjustments or when specific character-like spaces are needed.

Related Articles