Outlook Email Broken Layout Fix: Resolve CSS Flexbox Collapse for Transactional & System Notifications
Transactional emails (receipts, password resets, shipping alerts) carry critical operational data. Spacing collapses or broken buttons can block users from completing essential user journeys. Below is the targeted integration guide to fix CSS Flexbox Collapse inside Outlook Office 365 (Web) templates when using HubSpot.
Technical Breakdown
Outlook Office 365 (Web) uses the Office Rendering Service which lacks support for standard rendering rules. This causes CSS Flexbox Collapse elements to break or collapse when rendering templates.
HubSpot Behaviors
HubSpot's COS template manager automatically wraps content blocks in dynamic div structures to support their drag-and-drop system. These extra wrappers force styling inheritances that override inline td paddings, leading to spacing collapses in Outlook. Setting explicit table element attributes is crucial. Because system notifications are triggered frequently, ensure your CSS rules are completely inlined to guarantee readability in high-volume, automated delivery queues.
Remediation Code Block
To resolve this, modern layouts must be compiled down to Outlook-compliant nested HTML table models. Each flex container becomes a table row, and each flex child becomes a table data cell (td) with explicit pixel or percentage widths. In your HubSpot campaign manager, make sure you configure your links to run via {{ unsubscribe_link }}.
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="50%" valign="top" style="padding: 20px;">Column 1</td>
<td width="50%" valign="top" style="padding: 20px;">Column 2</td>
</tr>
</table>Live Code Sandbox Test
How to Deploy inside HubSpot
Copy the fixed VML or table wrapper code block from the remediation box above.
In HubSpot's Design Manager, edit the modules section. Create a 'Rich Text' or 'HTML' module block. Double-click the block, choose 'Tools' or 'Advanced', click 'Source Code', and drop the code snippet inside.