Skip to main content

Our email CSS engine is open source. Give it a star on GitHub 

Emailens
Blog

Outlook CSS Support: Property by Property, and the Fix

Outlook Classic on Windows renders email with Microsoft Word, which drops CSS it does not know, such as flexbox, grid, border-radius and background images, so check each property before relying on it and build the layout with tables.

The fix for Outlook Classic

Use table layout as fallback for flexbox in Outlook

after
<!--[if mso]>
<table role="presentation" width="100%" cellpadding="0"
  cellspacing="0" border="0"><tr>
  <td width="50%" valign="top">Column 1</td>
  <td width="50%" valign="top">Column 2</td>
</tr></table>
<![endif]-->
<!--[if !mso]><! -->
<div style="display: flex; gap: 16px;">
  <div style="flex: 1;">Column 1</div>
  <div style="flex: 1;">Column 2</div>
</div>
<!-- <![endif]-->
Show the original
before
<div style="display: flex; gap: 16px;">
  <div style="flex: 1;">Column 1</div>
  <div style="flex: 1;">Column 2</div>
</div>

The checker needs a computer screen.

A free account opens all 21 clients and keeps your checks for 7 days. Create a free account →

Real installs

Philippe Kam, founder of Emailens · Published 24 Feb 2026 · Updated 28 Oct 2026

@emailens/engine 0.18.22 · data last changed 10 Nov 2026

Part of the HTML email guide · all guides

Outlook CSS support comes down to one fact: Outlook Classic on Windows renders email with Microsoft Word, not a browser. Word drops the CSS it does not understand without an error, so the email looks right wherever you tested it and broken on the desks of everyone still on Outlook for Windows. Here is which Outlook uses which engine, what Outlook Classic does with each property, and where the fix for each one lives.

Why Outlook ignores your CSS: the Word rendering engine

Outlook for Windows, from Outlook 2007 to today's Outlook Classic, renders HTML email with the engine that powers Microsoft Word, not a browser engine. This was a deliberate decision in 2007 when Microsoft replaced the Internet Explorer rendering engine with Word's. It has never been reversed.

Word was built for printable office documents, not for the CSS the web has written since. When it meets a property it does not know, such as border-radius or a function such as linear-gradient(), it drops it. No error, no fallback, no warning. The email just looks broken, and you only find out if you test in Outlook Classic itself: a browser preview draws the CSS Word throws away.

Outlook on the web, on a Mac and the new Outlook for Windows render with browser engines and support much more. The client to plan for is Outlook Classic on Windows: 51 of 300 features work in Outlook Classic · 26 partial · 222 not supported · 1 untested.

Which Outlook uses which rendering engine

The name "Outlook" covers five clients with different engines. An email that looks right in Outlook.com can be broken in Outlook 2019 on Windows.

Outlook Classic (Windows 2007-2021)

Microsoft Word

The most restrictive: it renders with Word's engine. 51 of 300 features work in Outlook Classic · 26 partial · 222 not supported · 1 untested.

Outlook (New) for Windows

Chromium (Outlook Web)

A Chromium-based engine, shared with Outlook on the web. 168 of 300 features work in Outlook (New) · 34 partial · 98 not supported. Outlook (New) cells are the engine's mapping.

Outlook.com / 365 (Web)

Modern Web

Has its own sanitizer, far less restrictive than Word. 169 of 300 features work in Outlook 365 · 34 partial · 97 not supported.

Outlook for Mac

WebKit

Uses WebKit since the 2019 update. 170 of 300 features work in Outlook for Mac · 37 partial · 92 not supported · 1 untested.

Outlook Mobile (iOS/Android)

Varies

The iOS app uses WebKit; the Android app has more restrictions. 184 of 300 features work in Outlook iOS · 19 partial · 94 not supported · 3 untested. 179 of 300 features work in Outlook Android · 18 partial · 102 not supported · 1 untested.

The full matrix for the desktop app is in the Outlook Classic compatibility reference.

Outlook Classic CSS support, property by property

Each row says what Outlook Classic does with the property and links to its support page. The note under it is the short version of the fix; the linked guide has the code.

Outlook Classic is rarely the only client that drops these. The support across all 21 clients is on the pages for linear-gradient, box-shadow, border-spacing and box-sizing.

Word also reads its own CSS: mso- properties such as mso-line-height-rule, and markup inside <!--[if mso]> comments that no other client sees. Both are covered in MSO conditional comments and mso- CSS.

If you already scoped Gmail-only CSS with u + .body, a matrix that still blames Outlook is wrong; see email client targeting CSS.

Replacing flexbox with tables in MJML and React Email

The most common mistake is laying the email out with flexbox. Both frameworks have components that compile to tables, so use those instead:

MJML
17 lines
<!-- This breaks in Outlook -->
<mj-section>
  <mj-column>
    <mj-text css-class="hero">Welcome!</mj-text>
  </mj-column>
</mj-section>

<mj-style>
  .hero { display: flex; align-items: center; }
</mj-style>

<!-- Do this instead, MJML compiles to tables automatically -->
<mj-section>
  <mj-column vertical-align="middle">
    <mj-text>Welcome!</mj-text>
  </mj-column>
</mj-section>
React Email
17 lines
// This breaks in Outlook
<div style={{ display: 'flex', gap: '16px' }}>
  <img src="logo.png" />
  <p>Welcome to our app</p>
</div>

// Do this instead
import { Row, Column, Img, Text } from '@react-email/components';

<Row>
  <Column>
    <Img src="logo.png" width="48" height="48" />
  </Column>
  <Column>
    <Text>Welcome to our app</Text>
  </Column>
</Row>

Questions

Why does Outlook on Windows ignore modern CSS like flexbox and grid?

Since 2007, Outlook for Windows has rendered HTML email with Microsoft Word's engine, which was built for documents, not web layout. display:flex is not supported in Outlook Classic. display:grid is not supported in Outlook Classic. calc is not supported in Outlook Classic. position is not supported in Outlook Classic.

Which versions of Outlook use the Word rendering engine?

Outlook Classic on Windows, from Outlook 2007 to today's desktop app. Outlook on the web, Outlook for Mac and the new Outlook for Windows render with browser engines, so an email that looks right in Outlook.com can still break in Outlook 2019 on Windows.

Does the 'New Outlook for Windows' fix these CSS issues?

For its own readers, mostly. The new Outlook renders with a browser engine, and in the engine's data (its Outlook (New) cells are the engine's mapping) display:flex works in Outlook (New). border-radius works in Outlook (New). Readers still on Outlook Classic need the MSO fallbacks, and the new Outlook reads them as comments.

Does Outlook support CSS in a <style> block?

<style> is partly supported in Outlook Classic. Inline the styles your layout depends on, because some other clients drop the block too, Gmail's apps reading non-Google accounts among them.

Your next question

Also useful: background-image in Outlook Classic: the fix · display:flex in Outlook Classic: the fix · What the Outlook Classic deprecation changes

Paste the email that broke.

The checker needs a computer screen.

Every account includes one free real-device check in classic Outlook, Outlook for Mac and Apple Mail, after you verify your email and run one preview, while this month's free capacity lasts. How real-device checks work →

Get new email CSS fixes by email, or follow by RSS.