
本文介绍如何通过 在 中为所有 元素统一配置 padding,避免逐一手动修改每个标签,提升邮件模板的可维护性与一致性。
本文介绍如何通过 `
在 MJML 开发中,
幸运的是,MJML 提供了强大的全局样式机制——
<mjml> <mj-head> <mj-attributes> <!-- 全局覆盖所有 mj-section 的 padding --> <mj-section padding="0" /> <!-- 可选:同时统一其他常用属性 --> <mj-section background-color="#ffffff" /> <!-- 若需差异化控制,仍可在单个标签中显式覆盖 --> <!-- <mj-section padding="16px 0"> → 此处将优先生效 --> </mj-attributes> </mj-head> <mj-body> <mj-section> <mj-column> <mj-text>Hello, global padding is now 0!</mj-text> </mj-column> </mj-section> <mj-section> <mj-column> <mj-text>This section also respects the global setting.</mj-text> </mj-column> </mj-section> </mj-body> </mjml>
✅ 关键要点说明:
-
必须置于 内,且无需闭合标签(MJML 语法允许自闭合); - 属性值需符合 MJML 规范(如 “0”、”0px”、”12px 24px” 均有效,但 “0rem” 或 CSS 函数不被支持);
- 局部显式声明(如
)始终优先于全局设置,确保灵活性; - 该机制仅作用于 MJML 编译阶段,生成的 HTML/CSS 会自动注入对应内联样式,无需额外 CSS 或 hack 编译后 dom。
⚠️ 注意事项:
不支持 CSS 选择器或伪类,仅支持组件级属性覆盖; - 避免在
中混用冲突定义(如同时写 和 ),后者不会覆盖前者,而是可能导致未定义行为; - 若使用 MJML CLI 或构建工具(如 webpack + mjml-loader),请确保 MJML 版本 ≥ 4.0.0(该特性自 v4 引入并稳定支持)。
通过这一简洁配置,你不仅能显著减少模板冗余代码,还能在团队协作中建立清晰的设计约束——例如统一规定“所有主内容区块默认无垂直留白”,让视觉节奏更可控、迭代更高效。