Skip to main content
Emailens
CSS Properties

gap

CSS property · 8 supported, 7 partial, 6 unsupported across 21 clients

8 of 21 email clients render gap fully (Sep 2, 2026 data); it breaks outright in Outlook (New), Outlook Classic, Yahoo Mail and 3 more.

  • 2/7 webmail, 4/6 desktop, 2/8 mobile clients support gap fully.
  • Unsupported in Outlook (New), Outlook Classic, Yahoo Mail, Yahoo Mail Android and 2 more.
  • Partial in Gmail, Gmail Android, Gmail iOS, Outlook 365 and 3 more, behavior differs from browsers, test before relying on it.
  • Outlook Classic (Word engine, supported to at least 2029) does not fully support gap, and its replacement changes little here; see the deprecation diff.
  • Documented before/after fixes on this page cover 21 clients, including Gmail and Gmail Android.
  • Across all clients, only 6 of 298 tracked HTML/CSS features render identically everywhere.

Source: caniemail.com (MIT), via the Emailens engine. Last tested upstream Dec 28, 2022, synced by Emailens Sep 2, 2026.

Client Support

ClientCategoryEngineSupport
GmailwebmailGmail WebPartialSee caveat 1
Gmail AndroidmobileGmail MobilePartialSee caveat 1
Gmail iOSmobileGmail MobilePartialSee caveat 1
Outlook 365webmailOutlook WebPartialSee caveat 1
Outlook (New)desktopOutlook WebUnsupported
Outlook ClassicdesktopMicrosoft WordUnsupported
Outlook iOSmobileOutlook MobilePartialSee caveat 1
Outlook AndroidmobileOutlook MobilePartialSee caveat 1
Outlook for MacdesktopWebKitSupported
Apple MaildesktopWebKitSupported
Apple Mail iOSmobileWebKitSupported
Yahoo MailwebmailYahooUnsupported
Yahoo Mail AndroidmobileYahooUnsupported
Yahoo Mail iOSmobileYahooUnsupported
Samsung MailmobileSamsungSupported
ThunderbirddesktopGeckoSupported
HEY MailwebmailWebKitSupported
Proton MailwebmailProtonSupported
AOL MailwebmailAOLUnsupported
FastmailwebmailFastmailPartialSee caveat 2
SuperhumandesktopBlinkSupported

Documented caveats (2)

  1. 1.Gmail, Gmail Android, Gmail iOS, Outlook 365, Outlook iOS, Outlook Android: Partial. Supports column-gap for flexbox.
  2. 2.Fastmail: Partial. Supports gap and column-gap for flexbox. Supports gap for multi-column layout (i.e. in conjunction with CSS column-count property)

Caveats recorded by caniemail.com (MIT) and carried verbatim, one entry per wording rather than per client.

Client-by-client behaviour for gap

Fully supports gap (8): Outlook for Mac, Apple Mail, Apple Mail iOS, Samsung Mail, Thunderbird, HEY Mail, Proton Mail, Superhuman.

Partial support (7): Gmail, Gmail Android, Gmail iOS, Outlook 365, Outlook iOS, Outlook Android, Fastmail. Expect rendering quirks unique to each engine. Partial support typically means a subset of values, an ignored shorthand, or sanitizer-specific rewrites.

No support (6): Outlook (New), Outlook Classic, Yahoo Mail, Yahoo Mail Android, Yahoo Mail iOS, AOL Mail. Plan fallbacks for these clients before relying on gap in production sends.

Fixes & Workarounds

Outlook (New)

Unsupported

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Outlook Classic

Unsupported

Use cellpadding/cellspacing on tables, or padding on cells.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Yahoo Mail

Unsupported

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Yahoo Mail Android

Unsupported

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Yahoo Mail iOS

Unsupported

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

AOL Mail

Unsupported

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Gmail

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Gmail Android

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Gmail iOS

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Outlook 365

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Outlook iOS

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Outlook Android

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Fastmail

Partial

Use padding/margin on child elements instead of gap.

Before (Broken)

before.html
5 lines
<div style="display: flex; gap: 16px;">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>

After (Fixed)

fixed.html
8 lines
<table role="presentation" cellpadding="0"
  cellspacing="0" border="0">
  <tr>
    <td style="padding-right: 16px;">Item 1</td>
    <td style="padding-right: 16px;">Item 2</td>
    <td>Item 3</td>
  </tr>
</table>

Use padding or margin on child elements instead of gap

Production guidance for gap

gap is a CSS property. Across the email client matrix, 8 of 21 tracked clients support it fully, 7 only partially, and 6 not at all. The clients most likely to require a workaround for this feature are Outlook (New), Outlook Classic, Yahoo Mail. Each of them needs a tailored fallback. See the per-client examples above for the specific code fix Emailens recommends.

When in doubt, ship a baseline that renders without gap and treat it as progressive enhancement on clients where support is verified. Emailens automatically detects cross-client divergence on this feature when you preview an email, so you can see exactly which template paths break before a campaign goes out.

Related Features

Check your own HTML for gap

Paste your own, or run the sample below. Analyzed in this page, with no signup and nothing stored.

Zero-Friction Engine Preview

Test your gap layout across 21 email clients

Preview rendering, catch CSS issues, and see how gap displays across Outlook, Gmail, and Apple Mail. Free, no account needed.

Instant live preview · No signup required · 21 email engines

Last tested upstream: · Last synced by Emailens:

caniemail.com (MIT) records Dec 28, 2022 as the last time gap was tested in a real client, 3 years before this sync. Syncing copies that result forward, it does not re-test it. Carried in @emailens/engine data v0.12.2.