Outlook Classic
Outlook Classic (2007–2021) uses Microsoft Word's rendering engine instead of a browser engine. This is the most restrictive major email client — it ignores flexbox, grid, border-radius, CSS animations, background images, and dozens of other properties. Any property Word doesn't understand is silently dropped. Deprecated: Microsoft is replacing it with New Outlook (web engine) by October 2026.
Legacy Windows Outlook using the Word rendering engine. Reaching end of life October 2026. While its global market share is declining, it can still represent 30-60% of opens for B2B email senders during the transition period.
CSS coverage profile for Outlook Classic
Outlook Classic renders with the Microsoft Word engine and supports 45 of 251 tracked CSS and HTML features fully, with 20 partially supported and 180 unsupported. That places it in a narrow coverage band.
Most modern CSS is unsupported. This client effectively requires a separate, table-based fallback path for any non-trivial layout.
45
Supported
20
Partial
180
Unsupported
251
Total
Key gotchas in Outlook Classic
display: flex / gridSee detailsCompletely ignored. Word has no concept of CSS layout modes. Use nested <table> elements for all layout.
border-radiusSee detailsWord doesn't support rounded corners. Use VML (Vector Markup Language) inside conditional comments for rounded buttons.
background-image (CSS)CSS background images are stripped. Use <v:rect> VML inside <!--[if mso]> conditionals for background images.
max-widthIgnored entirely. Outlook needs explicit width attributes on <table> elements. Wrap fluid layouts in MSO conditional tables.
margin: autoUnreliable for centering. Use align="center" on the parent <table> instead.
How Outlook Classic renders email
- Word's rendering engine treats unknown CSS properties as a silent no-op. There are no errors, no warnings — your gradient hero simply renders as a solid background-color, your rounded button as a sharp rectangle.
- DPI scaling is 96 by default but is multiplied at the OS level by user accessibility settings. A 600px-wide email can render at 750 effective pixels on a 125% scaling configuration, breaking pixel-perfect designs.
- Conditional comments (<!--[if mso]>...<![endif]-->) are the most reliable mechanism for Outlook-specific overrides, since they target only the Word renderer without affecting modern clients.
- VML (Vector Markup Language) can simulate rounded buttons, gradient backgrounds, and even simple SVG-like shapes inside Outlook. The syntax is verbose but well-documented in the email-development community.
Dark mode behaviour in Outlook Classic
Outlook Classic supports dark mode in newer versions (2019+) and applies full color inversion. Older versions (2007-2016) do not support dark mode at all. The inversion algorithm can produce unexpected results with custom color schemes.
QA checklist for Outlook Classic
- Always test in real Outlook 2016/2019 — emulators do not capture every Word quirk.
- Check at 100% and 125% Windows display scaling to catch DPI-induced layout breaks.
- Verify that VML fallbacks render correctly when Microsoft's image-blocking is on; some VML elements depend on referenced images.
Related clients
HTML Elements40
| Feature | Support |
|---|---|
| <abbr> | Unsupported |
| <acronym> | Unsupported |
| <address> | Supported |
| <audio> | Unsupported |
| <base> | Unsupported |
| <bdi> | Unsupported |
| <blockquote> | Supported |
| <body> | Supported |
| <code> | Supported |
| <del> | Supported |
| <dfn> | Partial |
| <dialog> | Unsupported |
| <div> | Supported |
| <form> | Unsupported |
| <h1> | Supported |
| <hr> | Supported |
| <img> | Supported |
| <link> | Supported |
| <marquee> | Unsupported |
| <meter> | Unsupported |
| <object> | Unsupported |
| <p> | Supported |
| <picture> | Unsupported |
| <pre> | Supported |
| <progress> | Unsupported |
| <rp> | Unsupported |
| <rt> | Unsupported |
| <ruby> | Unsupported |
| <select> | Unsupported |
| <small> | Supported |
| <span> | Supported |
| <strike> | Supported |
| <strong> | Supported |
| <style> | Partial |
| <svg> | Unsupported |
| <table> | Supported |
| <textarea> | Unsupported |
| <ul> | Partial |
| <video> | Unsupported |
| <wbr> | Unsupported |
CSS At-Rules5
| Feature | Support |
|---|---|
| @font-face | Unsupported |
| @import | Supported |
| @keyframes | Unsupported |
| @media | Unsupported |
| @supports | Unsupported |
Pseudo-Elements6
| Feature | Support |
|---|---|
| ::after | Unsupported |
| ::before | Unsupported |
| ::first-letter | Unsupported |
| ::first-line | Unsupported |
| ::marker | Unsupported |
| ::placeholder | Unsupported |
Pseudo-Classes & Selectors32
| Feature | Support |
|---|---|
| :adjacent-sibling | Unsupported |
| :attribute-selector | Unsupported |
| :chaining | Unsupported |
| :checked | Unsupported |
| :child-combinator | Unsupported |
| :class-selector | Supported |
| :descendant-combinator | Supported |
| :first-child | Unsupported |
| :first-of-type | Unsupported |
| :focus | Unsupported |
| :general-sibling | Unsupported |
| :grouping | Supported |
| :has | Unsupported |
| :hover | Unsupported |
| :id-selector | Supported |
| :lang | Unsupported |
| :last-child | Unsupported |
| :last-of-type | Unsupported |
| :link | Supported |
| :not | Unsupported |
| :nth-child | Unsupported |
| :nth-last-child | Unsupported |
| :nth-of-type | Unsupported |
| :only-child | Unsupported |
| :only-of-type | Unsupported |
| :target | Unsupported |
| :type-selector | Supported |
| :universal-selector | Unsupported |
| :visited | Unsupported |
| pseudo-class-active | Unsupported |
| pseudo-class-default | Unsupported |
| pseudo-class-nth-last-of-type | Unsupported |
CSS Functions8
| Feature | Support |
|---|---|
| calc | Unsupported |
| clamp | Unsupported |
| conic-gradient | Unsupported |
| fit-content | Unsupported |
| linear-gradient | Unsupported |
| max | Unsupported |
| min | Unsupported |
| radial-gradient | Unsupported |
CSS Properties160
Test your email across all 15 clients
Preview rendering, catch CSS issues, and get actionable fixes — free.
Try Emailens FreeSupport data last updated Apr 27, 2026 · synced from caniemail.com via @emailens/engine.