为什么iPhone上的Gmail应用会忽略媒体查询?

时间:2022-07-15 22:22:06

I'm putting together an email newsletter for a client, and find that more or less every email client and app provides a more or less readable experience (they still need some work) - except for the Gmail app. Once the breakpoint is reached, it should be displaying as one column. But it does not.

我正在为客户整理电子邮件简报,并发现每个电子邮件客户端和应用程序或多或少提供或多或少的可读体验(他们仍然需要一些工作) - 除了Gmail应用程序。到达断点后,它应显示为一列。但事实并非如此。

I'm not sure why this is. Is there a way to force the app to display the newsletter in desktop mode shrunken down to fit the screen width? Or is there a way to target Gmail with a conditional so that the content will obey the media query?

我不确定为什么会这样。有没有办法强制应用程序在桌面模式下显示简报,缩小到适合屏幕宽度?或者有没有办法使用条件定位Gmail,以便内容将遵循媒体查询?

Related: the litmus tests I've ran don't look anything at all like the result I'm getting on my iPhone. Why is that?

相关:我跑过的石蕊试验看起来并不像我在iPhone上得到的结果。这是为什么?

http://codepen.io/sabaeus/pen/ZGQWdZ?editors=100

This is in my document head:

这是我的文件头:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <meta name="format-detection" content="telephone=no">
      <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;">
      <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
      <title>Title</title>


    </head>

And then this is in my body:

然后这是我的身体:

<body>

  <!-- background table start -->
  <table width="100%" bgcolor="#ffffff" cellpadding="0" cellspacing="0" border="0" id="background_table">
    <tbody>
      <tr>
        <td>
          <!-- end of background table start -->
          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td style="display:inline-block;" width="100%"><img src="http://placehold.it/197x41" style="display:block;"></td>
              </tr>
              <tr>
                <td width="100%" height="20">&nbsp;</td>
              </tr>
              <tr>
                <td width="100%" height="100">
                  <img src="http://placehold.it/699x400" style="display:block;">
                </td>
              </tr>
              <tr>
                <td width="100%" height="10">&nbsp;</td>
              </tr>
            </tbody>
          </table>

          <!-- hello/quick links -->
          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td width="393" class="column" style="height:100%;display:inline-block;margin-right:53px">Hello,
                  <br>
                  <br> Intro text

                </td>

                <td width="230" class="column" style="height:100%;padding:20px;">
                  <span class="h1">Quick Links</span>
                  <br>
                  <br>
                  <br>
                  <span style="display:inline-block; padding-bottom:5px;"><strong><a href="#" target="_blank">Link 1</a></strong></span>
                  <br> Info for link 1
                  <br>
                  <br>
                  <span style="display:inline-block; padding-bottom:5px;"><strong>Link 2</strong></span>
                  <br><a href="#" target="_blank">Link</a>
                  <br>
                  <br>
                  <span style="display:inline-block; padding-bottom:5px;"><strong>Link 3</strong></span>
                  <br><a href="">Link</a>

                </td>
              </tr>
            </tbody>
          </table>
          <!-- hello/quick links -->

          <!-- marketing communications -->
          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td>
                  <span class="h1">Headline 1</a>
              </td>
            </tr>
          </tbody>
        </table>

        <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
          <tbody>
            <tr>
              <td width="148" class="column-img" style="height:100%;display:inline-block;margin-right:17px">
                <a href="http://www.aegisliving.com/resource-center/rebecca-if-you-need-help-today-you-probably-needed-help-yesterday/" target="_blank"><img src="http://placehold.it/148x111" style="display:block;"></a>
              </td>

              <td width="503" class="column-text-1" style="padding:20px"><span style="font-size:18px;display:inline-block; padding-bottom:5px;"><strong>Sub head</strong></span>
                  <br>Info info info info info info info info info info info</td>
              </tr>
            </tbody>
          </table>
          <!-- marketing communications -->

          <!-- new print collateral -->
          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td class="top-buffer">
                  <span class="h1">Headline 2</span>
                </td>
              </tr>
            </tbody>
          </table>

          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td width="148" class="column-img" style="height:100%;display:inline-block;margin-right:17px"><img src="http://placehold.it/148x220" style="display:block;"></td>

                <td width="503" class="column-text-1" style="padding:20px"><span style="font-size:18px;display:inline-block; padding-bottom:5px;"><strong>Sub head</strong></span>
                  <br> info info info info</td>
              </tr>
            </tbody>
          </table>
          <!-- new print collateral -->

          <!-- advertising -->
          <!-- brand ads -->
          <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <tr>
                <td class="top-buffer">
                  <span class="h1" style="display:inline-block;">Headline 3</span>
                  <br>
                  <span style="font-size:18px;">
                <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
                  <tbody>
                    <tr>
                      <td style="padding-top:0px;">
                        <span style="font-size:18px;"><strong>Sub head</strong></span>
                </td>
              </tr>
            </tbody>
          </table>


        </td>
      </tr>
    </tbody>
  </table>

  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="350" class="column" style="height:100%;margin-right:131px"><img src="http://placehold.it/246x264" style="min-width:350px; display:block;"></td>

        <td style="height:100%;" width="350" class="column">
          <img src="http://www.placehold.it/267x324" style="min-width:350px; display:block;"></td>
      </tr>
    </tbody>
  </table>
  <!-- brand ads -->

  <!-- community ads -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td style="padding-top:30px;padding-bottom:0px;">
          <span style="font-size:18px;"><strong>Sub head</strong></span>
        </td>
      </tr>
    </tbody>
  </table>

  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="350" class="column" style="height:100%;margin-right:131px">
          <img src="http://placehold.it/197x320" style="min-width:350px; display:block">
          <table>
            <tbody>
              <tr>
                <td>
                  info info info info
                </td>
              </tr>
            </tbody>
          </table>
        </td>

        <td style="height:100%;" width="350" class="column"><img src="http://placehold.it/212x328" style="min-width:350px;display:block">
          <table>
            <tbody>
              <tr>
                <td style="padding-top:10px">
                  <br> info info info info info
                </td>
              </tr>
            </tbody>
          </table>
        </td>
        </td>
      </tr>
    </tbody>
  </table>
  <!-- community ads -->
  <!-- advertising -->

  <!-- talent acquisition -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td class="top-buffer">
          <span class="h1">Headline 4</span>
        </td>
      </tr>
    </tbody>
  </table>
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <!--  <tr>
      <td width="100%" height="10">&nbsp;</td>
    </tr>
   -->
      <tr>
        <td width="100%" height="100">
          <a href="#" target="_blank">
            <img src="http://placehold.it/668x195" style="width:100%;display:block;"></a>
        </td>
      </tr>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
    </tbody>
  </table>
  <!-- text -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>

      </tr>
      <tr>
        <td width="100%" height="100">
          <span style="font-size:18px;display:inline-block; padding-bottom:5px;"><strong>Sub head</strong></span>
          <br>Info info info
        </td>
      </tr>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
    </tbody>
  </table>
  <!-- text -->
  <!-- talent acquisition -->

  <!-- new expert advice -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td class="top-buffer">
          <span class="h1">Headline 5</span>
        </td>
      </tr>
    </tbody>
  </table>

  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td>
          <span style="display:inline-block;">Info info info</span>
        </td>
      </tr>
    </tbody>
  </table>

  <!-- 0 -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="345" class="column" style="height:100%;display:inline-block;margin-right:46px"><img src="http://placehold.it/345x281" style="width:100%;display:block;"></td>

        <td width="322" class="column" style="padding:20px;">
          <span style="display:inline-block; padding-bottom:5px;"><strong><a href="#" target="_blank">info info</a></strong></span>
          <br>info info info</td>
      </tr>
    </tbody>
  </table>
  <!-- 0 -->

  <!-- 1 -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="345" class="column" style="height:100%;display:inline-block;margin-right:46px"><img src="http://placehold.it/345x281" style="width:100%;display:block;"></td>

        <td width="322" class="column" style="padding:20px;">
          <span style="display:inline-block; padding-bottom:5px;"><strong><a href="#" target="_blank">info info</a></strong></span>
          <br>info info info</td>
      </tr>
    </tbody>
  </table>

  <!-- 1 -->

  <!-- 2 -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="345" class="column" style="height:100%;display:inline-block;margin-right:46px"><img src="http://placehold.it/345x281" style="width:100%;display:block;"></td>

        <td width="322" class="column" style="padding:20px">
          <span style="display:inline-block; padding-bottom:5px;"><strong><a href="#" target="_blank">info info</a></strong><span>
                 <br>
                info info info</td>
            </tr>
          </tbody>
        </table>
        <!-- 2 -->
        <!-- 3 -->
        <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
          <tbody>
            <tr>
              <td width="345" class="column" style="height:100%;display:inline-block;margin-right:46px"><img src="http://placehold.it/345x281" style="width:100%;display:block;"></td>

              <td width="322" class="column" style="padding:20px;">
                <span style="display:inline-block; padding-bottom:5px;"><strong><a href="#" target="_blank">info info</a></strong></span>
          <br>info info info
        </td>
      </tr>
    </tbody>
  </table>
  <!-- 3 -->
  <!-- new expert advice -->

  <!-- epic speaker videos -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td class="top-buffer">
          <span class="h1">Headline 6</span>
        </td>
      </tr>
    </tbody>
  </table>

  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="345" style="height:100%;display:inline-block;margin-right:17px;" class="column"><img src="http://placehold.it/258x154" style="width:100%;display:block;"></td>

        <td width="423" class="column" style="padding:20px;">info info info info info</td>
      </tr>
    </tbody>
  </table>
  <!-- epic speaker videos -->

  <!-- upcoming events -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td class="top-buffer">
          <span class="h1">Headline 7</span>
        </td>
      </tr>
    </tbody>
  </table>

  <table width="800" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <!-- <tr>
      <td width="100%" height="10">&nbsp;</td>
    </tr>
   -->
      <tr>
        <td width="100%" height="100">
          <span style="font-size:17px"><strong>
                May is: Physical Fitness Month&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp; Jewish American Heritage Month</strong></span>
          <table>
            <tbody>
              <tr>
                <td>
                  <ul style="line-height: 150%; width: 582px;">

                    <li style="list-style-type:none; padding-left:10px;background-color:#ededed">May 10th - <span style="font-weight:300">Mother’s Day</span> </li>
                    <li style="list-style-type:none;padding-left:10px;">May 25th - <span style="font-weight:300">Memorial Day</span> </li>
                    <li style="list-style-type:none; padding-left:10px; background-color:#ededed">June 6th - <span style="font-weight:300">D-Day</span></li>
                    <li style="list-style-type:none;padding-left:10px;">June 14th - <span style="font-weight:300">Flag Day</span></li>
                    <li style="list-style-type:none; padding-left:10px; background-color:#ededed">June 21st - <span style="font-weight:300">Father’s Day</span></li>
                    <li style="list-style-type:none;padding-left:10px;">June 21st - <span style="font-weight:300">Alzheimer’s Association Longest day (click below for details)</span></li>
                  </ul>
                </td>
              </tr>
            </tbody>
          </table>
        </td>
      </tr>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
    </tbody>
  </table>

  <!-- alzheimer's -->
  <table width="699" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
      <tr>
        <td width="100%" height="100">
          <a href="#" target="_blank"><img src="http://placehold.it/454x174" style="width:100%;display:block;"></a>
        </td>
      </tr>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
    </tbody>
  </table>
  <!-- alzheimer's -->

  <!-- prior -->
  <table width="800" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
      <tr>
        <td width="100%" height="100" style="padding:20px;">
          <span style="display:inline-block;padding-bottom:5px">
                Info info info
                </span>

        </td>
      </tr>
      <tr>
        <td width="100%" height="10">&nbsp;</td>
      </tr>
    </tbody>
  </table>
  <!-- prior-->
  <!-- upcoming events -->


  <!-- footer -->
  <table width="600" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
    <tbody>
      <tr>
        <td width="100%">
          <table width="600" cellpadding="0" cellspacing="0" border="0" align="center" class="body_table">
            <tbody>
              <!-- Spacing -->
              <tr>
                <td height="20" style="font-size:1px; line-height:1px; mso-line-height-rule: exactly;">&nbsp;</td>
              </tr>
              <!-- Spacing -->
            </tbody>
          </table>
        </td>
      </tr>
    </tbody>
  </table>
  <!-- end of footer -->

  <!-- end of background table-->
  </td>
  </tr>
  </tbody>
  </table>

</body>

</html>

CSS:

@import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,700);
body {
  width: 100% !important;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  margin: 0;
  padding: 0;
}

#background_table {
  margin: 0;
  padding: 0;
  width: 100%!important;
  line-height: 100%!important;
}

img {
  outline: none;
  text-decoration: none;
  border: none;
  -ms-interpolation-mode: bicubic;
  max-width: 100%;
  height: auto;
  display: block;
}

table td {
  border-collapse: collapse;
  vertical-align: middle;
  font-family: 'Open Sans', Trebuchet, sans-serif;
  font-size: 17px;
  line-height:120%;
  color: #000;
}

table td[class="column"] {
  height: 100px;
  width: 393px;
  padding: 15px;
}

table {
  border-collapse: collapse;
  mso-table-lspace: 0pt;
  mso-table-rspace: 0pt;
}

table[class="body_table"] {
  width: 699px;
  margin-top: 21px;
}

table span[class="h1"] {
  font-weight:300;
  font-size:35px;
  color:#ff9001;
}

table td[class="top-buffer"] {
  padding-top: 25px;
}

@media only screen and (max-width: 640px) {
  table[class="body_table"] {
    width: 600px!important;
  }

  table td[class="column"] {
    width: 100%!important;
    display: block!important;
  }
  table span[class="h1"] {
    line-height:110%!important;
    font-size:23px!important;
  }
  *[class="mob-hide"] { display: none !important }
}

1 个解决方案

#1


Gmail app and Gmail web service strips all class and ID styling out of your style tags. More Info Here

Gmail应用和Gmail网络服务会从您的样式标记中删除所有类和ID样式。更多信息在这里

There is an option for some elemental styling in Gmail web service as seen in link above, but other than that you need to do everything inline. This removes the capabilities of responsive design as you cannot inline media queries.

Gmail网络服务中有一些基本样式选项,如上面的链接所示,但除此之外,您需要内联所有内容。这会消除响应式设计的功能,因为您无法内联媒体查询。

Your best bet is fluid design(percentage based to fit small or large screen) or a mobile first hybrid design that is essentially designed first for Gmail/Outlook and then uses media queries and style tags to make it work for all other email clients.

最好的选择是流畅的设计(基于适合小屏幕或大屏幕的百分比)或移动优先设计,主要是为Gmail / Outlook设计的,然后使用媒体查询和样式标签使其适用于所有其他电子邮件客户端。

#1


Gmail app and Gmail web service strips all class and ID styling out of your style tags. More Info Here

Gmail应用和Gmail网络服务会从您的样式标记中删除所有类和ID样式。更多信息在这里

There is an option for some elemental styling in Gmail web service as seen in link above, but other than that you need to do everything inline. This removes the capabilities of responsive design as you cannot inline media queries.

Gmail网络服务中有一些基本样式选项,如上面的链接所示,但除此之外,您需要内联所有内容。这会消除响应式设计的功能,因为您无法内联媒体查询。

Your best bet is fluid design(percentage based to fit small or large screen) or a mobile first hybrid design that is essentially designed first for Gmail/Outlook and then uses media queries and style tags to make it work for all other email clients.

最好的选择是流畅的设计(基于适合小屏幕或大屏幕的百分比)或移动优先设计,主要是为Gmail / Outlook设计的,然后使用媒体查询和样式标签使其适用于所有其他电子邮件客户端。