HTML邮件必须直面兼容问题,因各客户端解析规则不同:Outlook用Word引擎不支持flex/grid/@media,Gmail剥离style并重写DOM,iOS Mail存在字体缩放bug;唯一可靠方案是table布局、内联样式、显式尺寸。
HTML邮件和兼容问题不是“能不能绕开”,而是“必须直面”——所有客户端都按自己规则解析,没有统一标准,写法稍偏就会在Outlook里错行、在Gmail里丢样式、在iOS Mail里缩放字体。
Windows版Outlook用的是Word渲染引擎,不是浏览器内核。它根本不认识display: flex、display: grid、@media,连max-width在某些版本里都会被无视。float失效、position被忽略、margin塌陷都是常态。
!important在Gmail里会被整条删掉,Outlook里压根不解析<table>:用<tr><td width="300">代替flex: 1,用height="20"的空单元格代替padding-top: 20px
<font face="Arial, sans-serif">,font-family在Outlook 2007–2019中支持极差Gmail会主动清空<head>里的所有<style>,只保留部分内联style属性;更麻烦的是,它会把你的<div>改成<div dir="ltr">,并套一层额外<div>,导致padding/margin计算全乱。
color、font-size、line-height、text-align
class或id——Gmail可能直接删掉这些属性width和height属性(不是CSS),否则Gmail Web版可能拉伸或留白本地浏览器预览毫无意义。Outlook渲染 ≠ Gmail渲染 ≠ iOS Mail渲染。真实效果只能靠实机+真实邮箱组合测试。
立即学习“前端免费学习笔记(深入)”;
litmus.com或emailonacid.com截图服务,覆盖Outlook 2013/2016/2019/365(Win/Mac)、Gmail(Web/iOS/Android)、Apple Mail、Yahoo<style>是否被清空、<table>结构是否被重写真正难的不是让代码跑起来,而是让同一份HTML在Outlook里不炸、在Gmail App里不丢色块、在iOS Mail里不缩放文字——这要求你放弃现代CSS思维,回归<table> + 内联 + 显式尺寸的原始组合,每改一行都要在三个客户端里点开看源码验证。