流体设计最大宽度在中断时更改为100%(HTML EMAIL)

时间:2017-09-15 14:24:10

标签: css html-email fluid-layout hybrid

我发现这个相关的问题有一个很好的解决方案,其中有两个列设计在达到320px的阈值时堆叠。这很棒;但是,我很好奇是否有一种方法可以使用width属性来复制两列堆叠的这种行为,但是宽度被限制为320px,它们在彼此堆叠后变为宽度100%。问题可以在这里找到:How to make html email responsive in gmail?

,代码可以在下面找到

<!doctype html>
<html>
    <body style="margin:0;">
        <center>
            <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">




                <!-- // 2-COLUMN SCAFFOLD [CENTERING, FLUID] -->
                <tr>
                    <td align="center" height="100%" valign="top" width="100%">
                        <!--[if mso]>
                        <table align="center" border="0" cellspacing="0" cellpadding="0" width="660">
                        <tr>
                        <td align="center" valign="top" width="660">
                        <![endif]-->
                        <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:660px;">
                            <tr>
                                <td align="center" valign="top" style="font-size:0;">
                                    <!--// DEVELOPER NOTES:
                                        1. Setting font-size:0; is necessary to ensure
                                           that there is no extra spacing introduced
                                           between the centering divs that wrap each
                                           of the columns. //-->

                                    <!--[if mso]>
                                    <table align="center" border="0" cellspacing="0" cellpadding="0" width="660">
                                    <tr>
                                    <td align="left" valign="top" width="330">
                                    <![endif]-->
                                    <div style="display:inline-block; max-width:50%; min-width:240px; vertical-align:top; width:100%;">
                                        <!--// DEVELOPER NOTES:
                                            1. To have each column center upon stacking,
                                               wrap them in individual divs, set the same
                                               max-width and width as the table within it,
                                               and set display to inline-block; using
                                               vertical-align is optional.

                                            2. Setting min-width determines when the two
                                               columns of this block will wrap; in this
                                               case, when the total available width is
                                               less than or equal to 480px. //-->

                                        <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:330px;">
                                            <tr>
                                                <td align="center" valign="top">

                                                    <!-- // REPLACE WITH BLOCK -->
                                                    <p style="background-color:#2BAADF; color:#FFFFFF; font:16px Helvetica, sans-serif, normal; margin:0 !important; padding:10px;">LEFT</p>
                                                    <!-- REPLACE WITH BLOCK // -->

                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                    <!--[if mso]>
                                    </td>
                                    <td align="left" valign="top" width="330">
                                    <![endif]-->
                                    <div style="display:inline-block; max-width:50%; min-width:240px; vertical-align:top; width:100%;">
                                        <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:330px;">
                                            <tr>
                                                <td align="center" valign="top">

                                                    <!-- // REPLACE WITH BLOCK -->
                                                    <p style="background-color:#51BBE5; color:#FFFFFF; font:16px Helvetica, sans-serif, normal; margin:0 !important; padding:10px;">RIGHT</p>
                                                    <!-- REPLACE WITH BLOCK // -->  

                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                    <!--[if mso]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                        </table>
                        <!--[if mso]>
                        </td>
                        </tr>
                        </table>
                        <![endif]-->
                    </td>
                </tr>
                <!-- 2-COLUMN SCAFFOLD [CENTERING, FLUID] // -->




            </table>
        </center>
    </body>
</html>

我建议测试一下,看看我指的是什么。任何建议都将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

我相信这就是你要找的东西。您可以使用媒体查询来定位具有类的特定HTML元素。我给了一类FullWidth,当屏幕尺寸达到480像素时,这些块将是屏幕的全宽。

有几点需要注意:

  • 此代码将在最新的Gmail应用,iOS(通用电子邮件客户端)和Android 4.4及更低版本(通用电子邮件客户端)上运行
  • 将媒体查询移动到HTML的头部。

&#13;
&#13;
@media only screen and (max-width:480px) {
.FullWidth{width:100% !important;max-width:100% !important;}
}
&#13;
<!doctype html>

<html>
<body style="margin:0;">
        <center>
            <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">
                <!-- // 2-COLUMN SCAFFOLD [CENTERING, FLUID] -->
                <tr>
                    <td align="center" height="100%" valign="top" width="100%">
                        <!--[if mso]>
                        <table align="center" border="0" cellspacing="0" cellpadding="0" width="660">
                        <tr>
                        <td align="center" valign="top" width="660">
                        <![endif]-->
                        <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:660px;">
                            <tr>
                                <td align="center" valign="top" style="font-size:0;">
                                    <!--// DEVELOPER NOTES:
                                        1. Setting font-size:0; is necessary to ensure
                                           that there is no extra spacing introduced
                                           between the centering divs that wrap each
                                           of the columns. //-->

                                    <!--[if mso]>
                                    <table align="center" border="0" cellspacing="0" cellpadding="0" width="660">
                                    <tr>
                                    <td align="left" valign="top" width="330">
                                    <![endif]-->
                                    <div style="display:inline-block; max-width:50%; min-width:240px; vertical-align:top; width:100%;" class="FullWidth">
                                        <!--// DEVELOPER NOTES:
                                            1. To have each column center upon stacking,
                                               wrap them in individual divs, set the same
                                               max-width and width as the table within it,
                                               and set display to inline-block; using
                                               vertical-align is optional.

                                            2. Setting min-width determines when the two
                                               columns of this block will wrap; in this
                                               case, when the total available width is
                                               less than or equal to 480px. //-->

                                        <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:330px;" class="FullWidth">
                                            <tr>
                                                <td align="center" valign="top">

                                                    <!-- // REPLACE WITH BLOCK -->
                                                    <p style="background-color:#2BAADF; color:#FFFFFF; font:16px Helvetica, sans-serif, normal; margin:0 !important; padding:10px;">LEFT</p>
                                                    <!-- REPLACE WITH BLOCK // -->

                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                    <!--[if mso]>
                                    </td>
                                    <td align="left" valign="top" width="330">
                                    <![endif]-->
                                    <div style="display:inline-block; max-width:50%; min-width:240px; vertical-align:top; width:100%;" class="FullWidth">
                                        <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width:330px;" class="FullWidth">
                                            <tr>
                                                <td align="center" valign="top">

                                                    <!-- // REPLACE WITH BLOCK -->
                                                    <p style="background-color:#51BBE5; color:#FFFFFF; font:16px Helvetica, sans-serif, normal; margin:0 !important; padding:10px;">RIGHT</p>
                                                    <!-- REPLACE WITH BLOCK // -->  

                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                    <!--[if mso]>
                                    </td>
                                    </tr>
                                    </table>
                                    <![endif]-->
                                </td>
                            </tr>
                        </table>
                        <!--[if mso]>
                        </td>
                        </tr>
                        </table>
                        <![endif]-->
                    </td>
                </tr>
                <!-- 2-COLUMN SCAFFOLD [CENTERING, FLUID] // -->




            </table>
        </center>
    </body>
</html>
&#13;
&#13;
&#13;

如果有任何问题,请告诉我

干杯