HTML邮件样式不生效,邮件Html踩坑

2020.03.10

从昨天中午开始开发邮件模板,到今天下午两点,终于搞定了主流邮箱的样式兼容问题。中间花了13小时,因为没有经验,所以踩了很多坑,总算趟出了一条路。

由于各大邮件系统所支持的HTML模板对css兼容性好坏不一,导致我开发时用的一些css样式属性完全不生效。经过不断的尝试,终于开发出了一套能够兼容主流邮箱的邮件模板。下面记录一下遇到的坑点,以及解决办法。

布局

table 布局,只能用table布局!所有和布局相关的属性基本都失效了,margin、padding、position在各个邮箱里支持的很不均衡,所以基本不能用了。所以对于垂直居中对齐,水平居中对齐,用table可以实现。虽然实现起来很麻烦,经常需要td标签里面再嵌套table,并且每个table标签最好设置属性border="0" cellpadding="0" cellspacing="0" width="100%" ,以保证样式的稳定,尤其是width属性,对于table和td最好都明确设置具体的值,否则会出现某些邮件里是100%,某些邮件里就是自动撑宽的样式。

对于想要padding效果的样式,可以采用嵌套table来实现,借助 td 标签的 align=“center” valign=“middle” 属性来保证居中:

也可以用border来实现:

对于想要类似margin的间距,就用空的tr标签,指定height即可。

对于table的使用,顺便说一下,只有td标签能嵌套其他元素,td里面可以写div、a标签等等,也可以嵌套table标签,这点要注意下。这次开发,让我对table稍微熟悉了。以前见到table总是发慌,现在不怕它了。

CSS3属性不要用

对于想要圆角的样式,border-radius属性不能用,很多邮箱都支持,但是也有不支持的。你以为你用了,它不支持就只是圆角不生效,展示成直角么?不支持的邮件里,对于border-radius的处理很尴尬,会展示类似于锯齿样式,很难看。

对于vw单位也不要用了,中国的一些邮箱支持的还可以,俄罗斯的有些邮箱不支持。

总之,css3的样式属性基本不要用了,邮件模板通用的开发守则就是table布局。

对于邮件模板HTML开发总结就这么多,后面再踩坑会继续补充,希望能帮到即将踩坑的你。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值