【问题标题】:Gmail does not recognize valign nor vertical-alignGmail 无法识别 valign 或 vertical-align
【发布时间】:2020-06-20 00:04:59
【问题描述】:

我正在制作一个电子邮件模板。我想在 heroImage.jpg 下划一条线。该行不能是 heroImage.jpg 的一部分,因为电子邮件中还有其他几行,它们应该看起来都一样。

我这样做的方法是,我将边框底部设置为放置 heroImage.jpg 的表格行。

我的问题是在 GMAIL 中(例如,当电子邮件发送时,但不是在 OUTLOOK 中)我在 heroImage.jpg 和我的行之间有一条细长的空间。我认为这是因为 GMAIL 无法识别 valign 或 vertical-align,因此 heroImage.jpg 顶部对齐(可能是默认选项),因此 #heroImageBlock 的颜色可见。

但是应该如何将 heroImage.jpg 对齐底部和正下方,这将是我的线(中间没有烦人的空间)。

有没有办法强制 GMAIL 识别 valign 或 vertical-align 并摆脱那个烦人的空间?

HTML

<tr>
    <td align="center" valign="bottom" id="heroImageContainer">
        <table border="0" cellpadding="0" cellspacing="0" width="600" id="heroImageBlock">                                      
            <tr class="border-bottom">
                <td>
                    <img src="images/heroImage.jpg" alt="" height="150" width="600" id="heroImage" />
                </td>
           </tr>
       </table>
    </td>
</tr>

CSS

#heroImageBlock td{vertical-align:bottom;}

我也尝试将垂直对齐分配给所有其他元素(见下文),但它不起作用。

#heroImageContainer {vertical-align:bottom;}
#heroImageBlock{vertical-align:bottom;}
#heroImageBlock tr{vertical-align:bottom;}

在 OUTLOOK 中的图像和一条红线很好地结合在一起:

在 GMAIL 中,图像和红线之间有一条恼人的灰线。

【问题讨论】:

    标签: html-email vertical-alignment valign


    【解决方案1】:

    Valign/垂直对齐不是你的问题。由于您专门设置块图像,因此您不应该有任何垂直对齐的东西。这指出了与您声明图像的方式有关的另一个问题,但我很快就会解决这个问题。

    仅供参考,最好给我们更多范围或更多代码。您正在引用一个边框底部类,但我们看不到要呈现该边框的属性是什么。图像上的 id 也是如此。如果在头部的类或 ID 上设置了任何属性,最好包含这些属性以供我们帮助您调试。

    以下是我建议的改进措施,以尝试解决此问题。
    1. 不要在表格行上设置任何属性或类。它们不是为这种用途而设计的。移动边框可能会解决问题,但即使没有,表格和表格单元格也是您应该添加它们的地方。在这种情况下,请将border-bottom 类声明移动到行下的表格单元格中。

    2.你有没有试过设置display:block;在图像上?默认情况下,图像将被声明为内联,您必须专门将其设置为块。内联时,间距可能会出现在图像下方,并且在尝试像素完美时会抛出间距和尺寸,或者在您的情况下直接在下方对齐内容。

    让我知道这些进展如何。

    【讨论】:

    • 您好,谢谢。这是整个文件ortodroma.si/dowloadable/email-V08.html 的链接。总的来说,代码应该质量相当好,因为我是按照 Mailchimp 向导制作的 Treehouse 模板构建的,但你永远不知道。我已将边框底部放置在表格数据中,并尝试再次发送到 Gmail。问题依然存在。
    • P.S.我绝对不认为有人应该去研究整个代码。但是我什至很难知道将代码的哪一部分发送给您。但我肯定会想办法。为了以防万一,我附上了电子邮件的整个代码。
    • 抱歉,我不让我打开那个链接。是否可以跳转到代码中手动在图片上添加 display:block?
    • 我也尝试了你的建议 nr 2 (我已将 display:block 添加到图像中)但它也不起作用。我是这样做的: ortodroma.si/downloadable/new.jpg" alt="Section separator" height="11" width="50" id="separatorImage" style="border: 0;outline: none;text-decoration :无;-ms-插值模式:双三次;显示:块">
    • 看到你的代码,添加显示块到图像的样式,它会修复它。
    【解决方案2】:

    尝试将这些样式添加到父元素: 字体大小:0px 和行高:0px。 默认情况下,Gmail 倾向于添加自己的间距。以上应该删除它。

    【讨论】:

    • 使用font-size:0 会抛出哪些可访问性标志?在 CSS 中指定零值时,不需要该单元,并且会导致许多 CSS linter 失败。
    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    相关资源
    最近更新 更多