Outlook.com / Outlook 365 Web

Outlook.com and the Outlook 365 web app use a real browser engine (Blink), making them significantly more capable than Outlook desktop. However, Microsoft still applies HTML sanitization for security, stripping some properties.

Engine vs. Desktop Outlook

Unlike Outlook 2007–2019 which uses Word's MSO engine, Outlook.com renders in the browser using Blink (Chrome's engine). This means most modern CSS works — but Microsoft's sanitizer still removes certain properties it considers risky.

Flexbox

Partial support. Basic flexbox properties work, but complex flex layouts (nested flex, flex-wrap, gap) can be unreliable. Test thoroughly, and have table-based fallbacks ready.

CSS Grid

Not supported. Grid properties are stripped by the sanitizer. Use tables or flexbox for layout.

position: fixed / sticky

Not supported. Fixed and sticky positioning is stripped for security (prevents email content from overlapping the Outlook UI). position: relative and absolute have partial support.

CSS Variables

Not supported. Custom properties are stripped by the sanitizer. Inline all values directly.

Transforms and Transitions

Not supported. CSS transform and transition are stripped. Avoid animations and transforms in email entirely.

<style> in <head>

Partial support. Outlook.com supports <style> blocks in some contexts, but it is not guaranteed. Inline styles are always the safest approach.

Not supported. <link> tags are stripped. All CSS must be inline or in a <style> block.

Media Queries

Partial support. Some media queries work in Outlook.com's web interface, but support varies between the web app and mobile clients. Don't rely on them as your only responsive strategy.

Viewport Units (vh/vw)

Not supported. Viewport units are stripped. Use fixed pixel values or percentage widths instead.

Key Takeaways

  • Much more capable than Outlook desktop — but still has a sanitizer
  • No CSS grid, no transforms, no CSS variables, no viewport units
  • Flexbox works partially — test carefully
  • Inline all critical styles
  • No external stylesheets
  • Avoid fixed/sticky positioning