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
<!--[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
<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
caniemail: display:flex is not supported in Outlook Classic.
More versions (2)
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 WordThe 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 WebHas its own sanitizer, far less restrictive than Word. 169 of 300 features work in Outlook 365 · 34 partial · 97 not supported.
Outlook for Mac
WebKitUses 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)
VariesThe 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.
- Not supporteddisplay:flex is not supported in Outlook Classic.Use tables. For columns that sit side by side, see Outlook ghost tables.
- Not supporteddisplay:grid is not supported in Outlook Classic.Same as flexbox: lay the columns out with a table.
- Partialmax-width is partly supported in Outlook Classic.Give Outlook a fixed-width table inside conditional comments; the ghost table guide has the pattern.
- Not supportedborder-radius is not supported in Outlook Classic.Draw the shape with VML or accept square corners: border-radius in Outlook.
- Not supportedlinear-gradient is not supported in Outlook Classic.Declare a solid background-color first: gradients in Outlook.
- Not supportedobject-fit is not supported in Outlook Classic.Crop the image to size before sending: object-fit in Outlook.
- Not supportedbackground-image is not supported in Outlook Classic.Use a VML <v:rect> with a solid background colour behind it; the VML background image guide has the full wrapper.
- Not supportedbox-shadow is not supported in Outlook Classic.Drop it for Outlook Classic, or fake a hard shadow with a darker border on a wrapping table cell.
- Not supportedborder-spacing is not supported in Outlook Classic.Use the cellspacing attribute on the table instead.
- Not supportedbox-sizing is not supported in Outlook Classic.Set widths with the width attribute on table cells and put padding on an inner cell, so the total stays the width you set.
- Partial<style> is partly supported in Outlook Classic.Inline the styles your layout depends on; some other clients, Gmail's apps reading non-Google accounts among them, drop the block.
- Partialmargin is partly supported in Outlook Classic.Centre with align="center" on the containing table, not with margin on inner elements.
- Not supported@font-face is not supported in Outlook Classic.A stack with fonts Outlook doesn't know ahead of Arial renders in Times New Roman. Set Arial in an MSO-only style: <!--[if mso]><style>* { font-family: Arial, sans-serif !important; }</style><![endif]-->.
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:
<!-- 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>// 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.
No signup · Five clients free, Outlook Classic included · All 21 with an account
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.