【问题标题】:Is it possible to achieve a float, or similar functionality, in Gmail now?现在是否可以在 Gmail 中实现浮动或类似功能?
【发布时间】:2013-07-28 15:48:21
【问题描述】:

现在可以在 Gmail 中实现浮动或类似功能吗?

我在这里看到过有关 Gmail 和响应式电子邮件的类似问题,但我想看看是否有针对此特定实例的当前答案。这可能是不可能的,所以我想确认一下。

我正在寻找一种不使用表格单元格的解决方案,以便每个元素都占据移动客户端的整个屏幕宽度。

div 和 table 都不起作用,我尝试了许多内联 CSS 的变体都无济于事:

 <div style="width: 300px !important; display:inline !important; float:left !important;" >

<table style="width: 300px !important; display:inline !important; float:left !important;" border="0" cellspacing="0" cellpadding="0">

【问题讨论】:

    标签: css gmail html-email


    【解决方案1】:

    使用this technique 使用html align 属性“浮动”两个相邻的表格。

    如果您希望某些内容为 100% 宽度,那么保证它的唯一方法是使用带有 width="100%" 的单列。由于 Gmail 不接受媒体查询,因此无法同时进行浮动/对齐和全宽。

    注意 - 在我的示例中,我使用了 320 像素,因为这是大多数 Android 手机的宽度,所以当表格堆叠时,它会显示为全宽。

    编辑:这是一个完整的电子邮件示例:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title>
      <style type="text/css">           
        /* Client-specific Styles - last updated 18 July 2013 */
        #outlook a {padding:0;}
        body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;} /* force default font sizes */
        .ExternalClass {width:100%;} .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Hotmail */
        a[href^="tel"], a[href^="sms"] { text-decoration: default; color: #000001 !important; pointer-events: auto; cursor: default;}
        table td {border-collapse: collapse;}
    
        .msoFix {
          mso-table-lspace:-1pt;
          mso-table-rspace:-1pt;
       }
      </style>
    </head>
    <body style="margin: 0px; padding: 0px; background-color: #FFFFFF;" bgcolor="#FFFFFF">
    
    
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td align="center">
          <div style="max-width:640px !important;">
    
            <table class="msoFix" width="320" cellpadding="0" cellspacing="0" align="left" bgcolor="#CCCCCC">
              <tr>
                <td width="15" bgcolor="454545">&nbsp;</td>
                <td width="290" bgcolor="454545" style="padding: 0px;">&nbsp;<br>table 1<br>...<br>&nbsp;
    
                </td>
                <td width="15" bgcolor="454545">&nbsp;</td>
              </tr>
            </table>
    
            <table class="msoFix" width="320" cellpadding="0" cellspacing="0" align="left" bgcolor="#EEEEEE">
              <tr>
                <td width="15" bgcolor="959595">&nbsp;</td>
                <td width="290" bgcolor="959595" style="padding: 0px;">&nbsp;<br>table 2<br>...<br>&nbsp;
                </td>
                <td width="15" bgcolor="959595">&nbsp;</td>
              </tr>
            </table>
    
          </div>
        </td>
      </tr>
    </table>
    
    
    </body></html>
    

    【讨论】:

    • 谢谢,我之前尝试过类似的解决方案。在 Outlook 中很棒,但在 Gmail 中,即使总宽度低于 600 像素,这两个表格也会堆叠在一起,而不是浮动或内联显示。到目前为止,我很确定这两个答案都是不可能的。
    • @jsuissa 刚刚将代码添加到我的答案底部。对其进行了测试,它可以在 Gmail 和 Outlook 2007 中运行。它似乎也可以在 Litmus 上的所有内容中运行,尽管如果无法调整视图大小就很难确定。如果表格没有并排放置,请尝试扩大浏览器窗口。
    • 非常感谢。我在 Litmus 中尝试了您的代码,这是迄今为止我看到的最好的结果,但表格仍然在 Gmail 和 Yahoo 中堆叠。 Litmus Test
    • @jsuissa 我正在测试 Litmus 和有关 Acid 的电子邮件。一些预览会堆叠,因为查看窗口不是 640 宽。除此之外,唯一明显大于 640 并且仍然错误地堆叠在两种测试服务上的电子邮件客户端是 Apple Mail 5 和 Outlook 2007。但是,当我在 Outlook 2007 中将其发送给自己时,它完美地浮动。当我将它发送到我的 Gmail 时,它也会完美浮动。没有雅虎帐户,所以如果有人可以在那里确认...
    • 谢谢。所以我尝试使用实际发送而不是依赖 Litmus 来测试它。它在使用 Chrome 的 Gmail 中运行良好,但 Litmus 显示它是堆叠的。因此,Litmus 结果并不完全可靠。我还注意到它在 iPad 上的 Gmail 应用程序中运行良好,这通常很麻烦。在 Litmus 中,它在 Outlook 2011 中叠加,但再次不确定 Litmus 测试的可靠性。
    【解决方案2】:

    对于 html 电子邮件,您无法真正逃避使用基于表格的布局。恕我直言,真的没有其他好的选择。我发现使电子邮件具有响应性的最佳方法是使它们对每个人都是静态的,并对支持文档级媒体查询的客户做出响应。我通过构建我的电子邮件来做到这一点,就好像它们将是完全静态的,然后在显示小于 600 像素时在头部添加一个媒体查询。

    这是一个例子:

    <head>
    <style>
      @media only screen and (max-width:599px) {
        .fluid {
          width:100% !important; /* override the fixed dimensions of the elements if media queries are supported */
          height:auto !important;
        }
      }
    </style>
    </head>
    

    这样当显示在 600px 以上时,所有用户看到的布局都是一样的。当显示低于 600 像素时,被归类为流体的元素会填满屏幕。如果电子邮件客户端不支持媒体查询,用户仍然会看到完全可读的电子邮件,他们只需移动内容即可阅读全部内容。

    这种方法非常适用于 Android、iPhone 和 Windows 手机。不过,Gmail 有点痛苦,因为它会剔除任何非内联的 CSS,从而使这种方式不起作用。但是,这就是为 3 打不同的电子邮件客户端编码时必须达到的平衡...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2014-10-14
      相关资源
      最近更新 更多