【问题标题】:Email Design: Text over background image电子邮件设计:背景图片上的文字
【发布时间】:2021-06-25 15:27:17
【问题描述】:

我正在尝试为具有背景图像和居中文本的电子邮件创建标题。这是它在“普通”电子邮件客户端中的外观:

但是在 Outlook 中它并没有退出工作,它最终是这样的:

是否有任何电子邮件专家可以帮助我解决此问题?

这是我目前所拥有的(内置反应):

<table width="640" cellPadding="0" cellSpacing="0" align="center" style={{ margin: '0 auto' }}>
    <tbody>
    <tr>
        <td
            height="143"
            width="640"
            align="center"
            valign="middle"
            background="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg"
            style={{ backgroundColor: '#00A699', backgroundSize: 'cover' }}
        >
            <div
                dangerouslySetInnerHTML={{
                    __html: `<!--[if gte mso 9]>
                        <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:640px;height:143px">
                          <v:fill type="frame" src="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg" />
                          <v:textbox inset="0,0,0,0" style="v-text-anchor:middle">
                          <![endif]-->`,
                }}
            />
            <table
                cellPadding="0"
                cellSpacing="0"
                className="arb_w100 "
                align="center"
                style={{ margin: '0 auto' }}
            >
                <tbody>
                <tr>
                    <td align="center">
                        <td
                            align="center"
                            valign="bottom"
                            className="arb_headline_1"
                            style={{ paddingTop: '10px' }}
                        >
                                            <span
                                                style={{
                                                    fontSize: '22px',
                                                    fontWeight: 400,
                                                    fontFamily: 'Helvetica, Arial, sans-serif',
                                                    lineHeight: '28px',
                                                    color: '#ffffff',
                                                }}
                                            >
                                                For a limited time, take
                                            </span>
                        </td>
                    </td>
                </tr>
                </tbody>
            </table>
            <div
                dangerouslySetInnerHTML={{
                    __html: `<!--[if gte mso 9]>
                          </v:textbox>
                        </v:rect>
                      <![endif]-->`,
                }}
            />
        </td>
    </tr>
    </tbody>
</table>

下面是上面翻译成标准 HTML 的代码:

<table width="640" cellPadding="0" cellSpacing="0" align="center" style="margin:0 auto">
    <tbody>
    <tr>
        <td height="143" width="640" align="center" valign="middle"
            background="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg"
            style="background-color:#00A699;background-size:cover">
            <div><!--[if gte mso 9]>
                        <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:640px;height:143px">
                          <v:fill type="frame" src="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg" />
                          <v:textbox inset="0,0,0,0" style="v-text-anchor:middle">
                          <![endif]--></div>
            <table cellPadding="0" cellSpacing="0" className="arb_w100 " align="center" style="margin:0 auto">
                <tbody>
                <tr>
                    <td align="center">
                        <td align="center" valign="bottom" className="arb_headline_1" style="padding-top: 10px;"><span
                            style="font-size: 22px; font-weight: 400; font-family: Helvetica, Arial, sans-serif; line-height: 28px; color: rgb(255, 255, 255);">For a limited time, take</span>
                        </td>
                    </td>
                </tr>
                </tbody>
            </table>
            <div><!--[if gte mso 9]>
                          </v:textbox>
                        </v:rect>
                      <![endif]--></div>
        </td>
    </tr>
    </tbody>
</table>

【问题讨论】:

  • 你好,你能用发送时的最终 HTML 交换当前的 sn-p 吗?当我们看不到 React 在最终实例中生成的内容时,很难调试。可能是您的 VML (Outlook) 代码存在问题,因此查看最终代码会更有帮助。
  • @Digital_Frankenstein 当然,只是在它下面添加了原始 HTML

标签: html outlook html-email email-templates


【解决方案1】:

感谢您提供最终的 HTML,帮助很大!

所以您的最终 HTML 存在一些问题。

  1. 您有包装每个 MSO sn-ps 的 div,这基本上关闭并破坏了 sn-ps。所以删除第一个 MSO sn-p 的结束 div 标签和第二个 sn-p 的开始 div 标签。
  2. 您需要将这两个标签移入,因此它只是包装您的内部内容。我们通常会添加一个 div 来包装内部内容,以帮助重置 Outlook 中的 HTML,然后我们可以在内部内容中设置任何样式等。
  3. 然后我注意到你有一个双重的内部标签。删除外部标签,因为它们没有声明任何样式,而内部标签有。

修改这些小东西将解决您的问题。

这是清理的 sn-p,以防我的说明没有意义:

<table width="640" cellPadding="0" cellSpacing="0" align="center" style="margin:0 auto">
<tbody>
    <tr>
        <td height="143" width="640" align="center" background="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg" style="background-color:#00A699;background-size:cover">
            <!--[if gte mso 9]>
            <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:640px;height:143px">
            <v:fill type="frame" src="https://image.shutterstock.com/image-illustration/website-header-banner-design-abstract-260nw-1621024345.jpg" />
            <v:textbox inset="0,0,0,0" style="v-text-anchor:middle">
            <![endif]-->
            <div>
            <table cellPadding="0" cellSpacing="0" className="arb_w100 " align="center" style="margin:0 auto">
                <tbody>
                    <tr>
                        <td align="center" className="arb_headline_1" style="padding-top: 10px;"><span style="font-size: 22px; font-weight: 400; font-family: Helvetica, Arial, sans-serif; line-height: 28px; color: rgb(255, 255, 255);">For a limited time, take</span>
                        </td>
                    </tr>
                </tbody>
            </table>
            </div>
            <!--[if gte mso 9]>
            </v:textbox>
            </v:rect>
            <![endif]-->
        </td>
    </tr>
</tbody>
</table>

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 2015-09-17
    • 2019-08-23
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多