iOS 10 Mail HTML无法正确响应

时间:2016-12-22 10:29:12

标签: html css html-email newsletter

我正在制作时事通讯,我发现了一些奇怪的行为。

我有一张2里面的桌子,我希望它们是一个块,宽度为100%但是会发生以下情况:

enter image description here

它还打破了邮件的其他部分。我已经尝试了很多......每个视口,最大宽度,最小宽度,我不知道该做什么......

我验证了,媒体查询正在运作

我需要一些特殊的黑客吗?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:v="urn:schemas-microsoft-com:vml" style="box-sizing: border-box;">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />    <meta name=”x-apple-disable-message-reformatting” />
    <meta property="og:title" content="*|MC:SUBJECT|*">
    <title>*|MC:SUBJECT|*</title>


    <style type="text/css">.inhalt li a {line-height:26px;}</style>


<style type="text/css">
body {
font-family: "Helvetica", "Arial";
}
img {
margin: 0; padding: 0; border: none;
}
body {
color: #000000; z-index: -3; font-family: "Helvetica", "Arial";
}
@media only screen and (max-width: 599px) {
  table[yahoo] {
    display: block; width: 100% !important; min-width: 100% !important; max-width: 100% !important;
  }
  .yahoo {
    display: block; width: 100% !important; min-width: 100% !important; max-width: 100% !important;
  }
  .desktop {
    display: none !important; height: 0px !important; max-height: 0 !important; line-height: 0px !important; font-size: 0px !important; overflow: hidden !important; mso-hide: all;
  }
  [desktop] {
    display: none !important; height: 0px !important; max-height: 0 !important; line-height: 0px !important; font-size: 0px !important; overflow: hidden !important; mso-hide: all;
  }
  .mobile {
    height: auto !important; max-height: none !important; line-height: normal !important; font-size: medium !important; overflow: visible !important; mso-hide: none !important;
  }
  [mobile] {
    height: auto !important; max-height: none !important; line-height: normal !important; font-size: medium !important; overflow: visible !important; mso-hide: none !important;
  }
  .mobileshow_inlineblock {
    height: auto !important; max-height: none !important; line-height: normal !important; font-size: medium !important; overflow: visible !important; mso-hide: none !important;
  }
  [mobileshow_inlineblock] {
    height: auto !important; max-height: none !important; line-height: normal !important; font-size: medium !important; overflow: visible !important; mso-hide: none !important;
  }
  .mobile {
    display: block !important;
  }
  [mobile] {
    display: block !important;
  }
  .mobileshow_inlineblock {
    display: inline-block !important;
  }
  [mobileshow_inlineblock] {
    display: inline-block !important;
  }
  .hidden {
    display: none !important;
  }
  .mblock {
    position: relative; display: table-row !important;
  }
  .mblock > tr {
    display: block; width: 100% !important; max-width: 100% !important; min-width: 100% !important;
  }
  .mblock > tr > td {
    display: block; width: 100% !important; max-width: 100% !important; min-width: 100% !important;
  }
  .underlined {
    text-decoration: underline !important;
  }
  .mcol {
    width: 100% !important; padding: 0 20px !important;
  }
  .halfcol {
    width: 120px !important;
  }
  .prehead td {
    height: 66px !important;
  }
  .logo {
    width: 115px !important; height: 26px !important;
  }
  .preheadtxt {
    font-size: 8px !important; line-height: 11px !important;
  }
  .header_image {
    width: 100% !important; max-width: 100% !important; height: auto !important;
  }
  .headertxt {
    font-size: 16px !important; line-height: 24px !important;
  }
  .inhalttitle {
    font-size: 28px !important; line-height: 36px !important;
  }
  .inhaltlinks a {
    font-size: 16px !important; line-height: 24px !important; text-decoration: none !important;
  }
  .teaser {
    width: 100% !important; max-width: 100% !important; min-width: 100% !important;
  }
  .pretitle {
    font-size: 16px !important; line-height: 20px !important;
  }
  .teasertitle {
    font-size: 28px !important; line-height: 36px !important;
  }
  .posttitle {
    font-size: 16px !important; line-height: 20px !important;
  }
  .teasertxt {
    font-size: 16px !important; line-height: 24px !important;
  }
  .mcol_teaser_1_pic {
    width: 100% !important; text-align: right;
  }
  .mcol_teaser_2_pic {
    width: 100% !important; padding-bottom: 20px !important;
  }
  .teaserpic {
    height: auto !important; width: 100% !important; max-width: 100% !important; min-width: 100% !important;
  }
  .smallteaserlink {
    font-size: 22px !important;
  }
  .smallteaserpic {
    max-width: 100% !important; width: 100% !important; height: auto !important;
  }
  .footer .mcol a {
    text-decoration: underline !important;
  }
  .footer_leftpart {
    font-size: 16px !important; line-height: 34px !important;
  }
  .footer_rightpart {
    text-align: left !important;
  }
  .footer_copyright {
    width: 280px !important; padding: 0 20px !important; text-align: left; position: absolute; top: 100%; left: 0;
  }
  .type1 {
    font-size: 16px !important; line-height: 34px !important;
  }
  .type2 {
    font-size: 16px !important; line-height: 24px !important;
  }
}
</style>
</head>
<body bgcolor="#D8D8D8" style="box-sizing: border-box; font-family: 'Helvetica', 'Arial'; color: #000000; z-index: -3; margin: 0; padding: 0;">
<table bgcolor="#FFFFFF" class="body" cellspacing="0" cellpadding="0" yahoo="1" style="box-sizing: border-box; border-collapse: collapse; font-size: 0; width: 600px; margin: 0 auto; padding: 0; border: none;">
    <tr style="box-sizing: border-box;">
        <td align="left" valign="top" cellspacing="0" cellpadding="0" mainwrap style="box-sizing: border-box; margin: 0; padding: 0;">



<!-- // Begin Template teasertype2 \\ -->

<table yahoo width="600" class="mblock teaser teaser_2 yahoo" bgcolor="#ffffff" style="box-sizing: border-box; border-collapse: collapse; font-size: 0; width: 600px; margin: 0; padding: 0; border: none;">
    <tr style="box-sizing: border-box;">
        <td width="260" class="mblock mcol" align="left" valign="top" style="box-sizing: border-box; margin: 0; padding: 0;">
            <div class="txt pretitle" style="font-size: 12px; line-height: 14px; font-weight: bold; box-sizing: border-box; mso-line-height-rule: exactly; color: #000000; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 0;" mc:edit="pretitle2">
                LEFT
            </div>
        </td> <td width="260" class="mblock mcol" align="left" valign="top" style="box-sizing: border-box; margin: 0; padding: 0;">
            <div class="txt pretitle" style="font-size: 12px; line-height: 14px; font-weight: bold; box-sizing: border-box; mso-line-height-rule: exactly; color: #000000; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 0;" mc:edit="pretitle2">
                RIGHT
            </div>
        </td>
    </tr>
</table>




<!-- // End Template teasertype2 \\ -->






<!--[if !mso]><!-->
<!--<![endif]-->

        </td>
    </tr>
</table>
</body>
</html>

当前的问题:

iOS 10不接受“display:block;”在“td”标签上

2 个答案:

答案 0 :(得分:2)

我无法确切地告诉您问题的确切位置,但可以在上面提供的代码中看到很多重复内容。可能存在冲突,特异性问题,或iOS邮件只会让人感到困惑并抛出重要的CSS规则。

以下是600px宽电子邮件的简化示例,其中包含两个堆叠的偶数列。我没有包含大多数的CSS(与此问题无关)以及大部分周围的HTML。我还在最后删除了孤立的<!--[if !mso]><!--><!--<![endif]-->

CSS进入<head>

<style>
    @media screen and (max-width: 600px) {
        .mblock {
            display: block !important;
            width: 100% !important;
            max-width: 100% !important;
            direction: ltr !important;
        }
    }
</style>

和HTML:

<!-- // Begin Template teasertype2 \\ -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" width="100%" style="max-width: 600px;">
    <tr>
        <td bgcolor="#ffffff" align="center" height="100%" valign="top" width="100%">
            <!--[if mso]>
            <table role="presentation" border="0" cellspacing="0" cellpadding="0" align="center" width="600">
            <tr>
            <td align="center" valign="top" width="600">
            <![endif]-->
            <table role="presentation" border="0" cellpadding="0" cellspacing="0" align="center" width="100%" style="max-width:600px;">
                <tr>
                    <td align="center" valign="top" style="font-size:0;">
                        <!--[if mso]>
                        <table role="presentation" border="0" cellspacing="0" cellpadding="0" align="center" width="100%">
                        <tr>
                        <td align="left" valign="top" width="300">
                        <![endif]-->
                        <div style="display:inline-block; margin: 0 -2px; width:100%; min-width:200px; max-width:300px; vertical-align:top;" class="mblock">
                            <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
                                <tr>
                                    <td class="txt pretitle" style="font-size: 12px; line-height: 14px; font-weight: bold; box-sizing: border-box; mso-line-height-rule: exactly; color: #000000; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 0;" mc:edit="pretitle2">
                                        LEFT
                                    </td>
                                </tr>
                            </table>
                        </div>
                        <!--[if mso]>
                        </td>
                        <td align="left" valign="top" width="300">
                        <![endif]-->
                        <div style="display:inline-block; margin: 0 -2px; width:100%; min-width:200px; max-width:300px; vertical-align:top;" class="mblock">
                            <table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
                                <tr>
                                    <td class="txt pretitle" style="font-size: 12px; line-height: 14px; font-weight: bold; box-sizing: border-box; mso-line-height-rule: exactly; color: #000000; font-family: Helvetica, Arial, sans-serif; margin: 0; padding: 0;" mc:edit="pretitle2">
                                        RIGHT
                                    </td>
                                </tr>
                            </table>
                        </div>
                        <!--[if mso]>
                        </td>
                        </tr>
                        </table>
                        <![endif]-->
                    </td>
                </tr>
            </table>
            <!--[if mso]>
            </td>
            </tr>
            </table>
            <![endif]-->
        </td>
    </tr>
</table>
<!-- // End Template teasertype2 \\ -->

这种技术使用混合方法,它使用最大宽度和最小宽度来施加刚性基线(允许一些移动),并为无论如何被束缚到桌面的Outlook施加固定的宽宽度(因此{{1} } 东西)。媒体查询可以在支持它的客户端中进一步增强电子邮件,例如iOS Mail。

修改:其他文档类型和元信息:

<!--[if !mso]>

答案 1 :(得分:0)

尝试对表和表td使用table[class="mblock"], table td[class="mblock"] { width: 100% !important; display: block !important; }

td

实际上,只需定位td[class="mblock"] { width: 100% !important; display: block !important; } ;

即可
class LogoUploader < CarrierWave::Uploader::Base 
  # ... 
  def filename 
    "original_#{model.logo.file.extension}" if original_filename 
  end 
  version :small do 
    process :resize_to_fit => [190, 190] 
    process :convert => 'png' 
  end 
  version :icon do 
    process :resize_to_fill => [50, 50] 
    process :convert => 'png' 
  end 
  # ... 
end

媒体查询的替代方法

我假设在标题中的原始样式上进行某种转换(例如; MS Word ML)。

对于几乎(如果不是全部)全部相当防弹的替代方法称为 Fab Four Technique ,它不依赖于媒体查询,这意味着您可以获得自适应布局不支持它的客户;如; Outlook和Gmail。

JS Fiddle Here

Article on Medium

Example on Litmus