我正在从我的 BE 邮件服务器发送电子邮件模板。此实现的细节并不重要。
当电子邮件到达 Gmail 收件箱时,会显示 html,但没有 CSS。
我尝试了什么
我尝试的第一件事是使用内联工具(如 Mailchimp 的内联工具)内联整个嵌入式 CSS(标签)。
此后,它起作用了。这是因为所有样式都是为各个元素内联设置的。
这对我来说不太方便,因为在发送电子邮件之前需要有一个后处理期,并且需要 BE 或 my 上的插件来手动完成。 (注意:我通过使用类编写 HTML 和 CSS 来创建模板,就像常规的 html 页面一样)。
Gmail 采用嵌入式 () CSS 是否存在问题,因为在我使用的其他一些模板上,类和媒体查询工作得很好?
我发现使用的内联 CSS 工具不仅为单个元素添加了样式,而且还减少了整体代码。
这意味着代码更短,Gmail 以这种方式接受它。 结论
我发现 Gmail 只允许在一个嵌入式 CSS 中最多使用 16KB 的字符 (<style>
)。
解释了 Gmail 如何处理超过 16kB 的多余 CSS 代码。它把它切断了,这就是为什么 CSS 根本不可见的原因。 文章中的
解决方案:
缩小 - 删除样式周围不必要的空白。你 可以手动执行此操作或使用某些工具,但请确保使用某些工具 专为电子邮件而不是网络而构建,以避免任何问题。
就我而言,我在之前的模板工作中使用了一些多余的 CSS,这就是导致该- Uglify - 将类名更改为较短的可能不可靠的名称, 因此.两列布局{}可以变成.col2{}甚至.a{}。又是你 可以手动或使用某些电子邮件特定工具来完成此操作。
- 使用多个样式块 - 如果您有多个块 Gmail 仅当总大小超过 16kb 时才会开始删除。
<style>
内容的 CSS 总大小超过 16kB 的原因。