欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

制作html邮件的注意点_html/css_WEB-ITnose

程序员文章站 2022-05-09 16:06:32
...
由于之前python那边有一些制作前端html邮件的需求,所以在这过程中也有了一些自己的心得体会

1. 不要外联css

关于css的支持可以参考 http://www.campaignmonitor.com/css/ ,里面有各个邮件系统中的支持情况的统计列表。在里面我们可以看到

所以,通过html的标签属性或者style属性来设置页面的css样式。而在HTML电子邮件的开发中,有一条黄金法则:

如果一个属性存在于HTML中,绝对使用标签属性而不使用CSS样式

2. 使用table布局

为什么要用古老的table布局呢?因为邮件的客户端一般都采取比较原始的解析方式,我们可以邮件客户端比喻为浏览器界的IE6。

如果采取div,再用position或float来布局的话,

由于position属性在Outlook07/10/13、Yahoo! Mail和Google Gmail下不支持,

float属性在Outlook客户端和网页端均不支持,

所以兼容性并不友好,到时在某些情况下页面就会死得很难看。

所以,采取古老的table嵌套布局稳定性最好,而且可通过align="center"实现万能居中

3. 所有img标签设置alt属性及border=0

设置alt属性是为了防止图片显示不出来时,至少有文字说明,让用户明白意思。

设置border=0,我也不清楚为什么要设置border=0,但它确实能让图片在更多情况下显示出来。

当然,在一些情况下仍然不支持,比如gmail网页端发送到QQ邮箱网页端(图片仍然显示不出来,查看源代码发现img标签的src和alt属性都被和谐了)

同时,可为img设置display:block,可用来修复一些电子邮件客户端图片下面空白间距。

另外,如果一定要用到图片的话,个人建议最好把图片上传到服务器,或者对于不大的图片直接使用base64。

4. 设置background-color时,永远记住要使用完整的6个完整的十六进制编码,如果使用三个简写字符,不总是有效

虽然background-color属性对于所有邮件系统都支持,但赋值时记得用6个完整的十六进制编码。

哪怕是黑色,也不要用#000,而是#000000

5. 用padding,不用margin

margin属性对于Outlook的网页端并不支持

padding可支持所有邮件系统,至少我padding用到现在并没有出现不兼容的情况。

但我看网上说table布局的话padding是没问题的,但如果用div布局的话padding会变得不可控,这一点我还没有尝试过。

这是之前做html邮件的一些心得体会,以后有其他收获再继续补充。