HTML邮件开发:容器宽度充足时嵌套表格无法并排显示如何解决?
HTML邮件双列表格精准布局解决方案
问题根源
布局偏移不是边框导致的,核心原因是inline-block元素之间的空白字符占位:你的两个子标签之间存在换行符,邮件客户端会将这个换行解析为一个半角空白字符,通常占用4-6px宽度,两个300px的子表格加上这个空白宽度就超出了600px的父容器上限,所以必须压缩子表格宽度才能并排。
兼容邮件客户端的解决方法
方法1:直接消除标签间空白(最简方案)
把两个子
<table width="100%" class="frame"> <tr> <td> <table class="column"> <tr> <td> Content I </td> </tr> </table><table class="column"> <tr> <td> Content II </td> </tr> </table> </td> </tr> </table>
方法2:父节点设置font-size:0(兼容性好)
给包裹子表格的父
| 设置字号为0,空白字符作为文本节点就不会占用宽度,再在子表格的 | 中恢复正常字号即可: 修正后的CSS:
修正后的HTML部分:
方法3:用原生表格列实现(HTML邮件最佳实践)HTML邮件开发最稳妥的布局方式就是完全用原生表格结构,避免使用inline-block这类存在兼容风险的CSS属性,直接在外层表格开两个300px的列放内容即可,不会出现任何宽度计算问题:
额外提示HTML邮件开发建议尽量将样式写为行内样式,避免大部分邮件客户端过滤中的样式导致布局失效。 内容的提问来源于stack exchange,提问作者Xen_mar |
相关产品推荐
相关产品推荐

