html邮件必须直面兼容问题,因各客户端解析规则不同:outlook用word引擎不支持flex/grid/@media,gmail剥离style并重写dom,ios mail存在字体缩放bug;唯一可靠方案是table布局、内联样式、显式尺寸。

HTML邮件和兼容问题不是“能不能绕开”,而是“必须直面”——所有客户端都按自己规则解析,没有统一标准,写法稍偏就会在Outlook里错行、在Gmail里丢样式、在iOS Mail里缩放字体。
为什么Outlook会把flex布局渲染成一坨
Windows版Outlook用的是Word渲染引擎,不是浏览器内核。它根本不认识display: flex、display: grid、@media,连max-width在某些版本里都会被无视。float失效、position被忽略、margin塌陷都是常态。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- 别指望用CSS重置搞定——
!important在Gmail里会被整条删掉,Outlook里压根不解析 - 替代方案只有
<table>:用<code><tr><td width="300">代替<code>flex: 1,用height="20"的空单元格代替padding-top: 20px - 字体必须用
<font face="Arial, sans-serif"></font>,font-family在Outlook 2007–2019中支持极差 - 避免
class或id——Gmail可能直接删掉这些属性 - 图片必须带
width和height属性(不是CSS),否则Gmail Web版可能拉伸或留白
Gmail为什么总剥离
Gmail会主动清空里的所有<style></style>,只保留部分内联style属性;更麻烦的是,它会把你的<div>改成<code><div dir="ltr">,并套一层额外<code><div>,导致padding/margin计算全乱。
<ul>
<li>所有样式必须内联,且只用Gmail明确支持的:如<code>color、font-size、line-height、text-align
怎么验证HTML邮件真正在目标客户端里长什么样
本地浏览器预览毫无意义。Outlook渲染 ≠ Gmail渲染 ≠ iOS Mail渲染。真实效果只能靠实机+真实邮箱组合测试。
- 优先测三类:Outlook for Windows(最严)、Gmail App(Android)、iOS Mail(宽松但有字体缩放bug)
- 用
litmus.com或emailonacid.com截图服务,覆盖Outlook 2013/2016/2019/365(Win/Mac)、Gmail(Web/iOS/Android)、Apple Mail、Yahoo - 别信“已发送成功”——打开收件箱后点“View original”(Gmail)或“Message Source”(Outlook),确认
<style></style>是否被清空、<table>结构是否被重写 <p>真正难的不是让代码跑起来,而是让同一份HTML在Outlook里不炸、在Gmail App里不丢色块、在iOS Mail里不缩放文字——这要求你放弃现代CSS思维,回归<code><table> + 内联 + 显式尺寸的原始组合,每改一行都要在三个客户端里点开看源码验证。</table>










