html表100%宽度

时间:2016-10-18 21:25:01

标签: html css html-email

真的是基本问题,但是我不能让它像我想要的那样工作......不要做太多的HTML了。这就是我得到的:

<table border="0" width="600" cellspacing="0" cellpadding="0">
<thead>
<tr><th style="font-size: 13px; padding: 5px 9px 6px 9px; line-height: 1em;" align="left" bgcolor="#EAEAEA" width="300">Shipping Information:</th><th width="10">&nbsp;</th><th style="font-size: 13px; padding: 5px 9px 6px 9px; line-height: 1em;" align="left" bgcolor="#EAEAEA" width="300">Shipping Method:</th></tr>
</thead>
<tbody>
<tr>
<td style="font-size: 12px; padding: 7px 9px 9px 9px; border-left: 1px solid #EAEAEA; border-bottom: 1px solid #EAEAEA; border-right: 1px solid #EAEAEA;" valign="top">{{var order.getShippingAddress().format('html')}} &nbsp;</td>
<td>&nbsp;</td>
<td style="font-size: 12px; padding: 7px 9px 9px 9px; border-left: 1px solid #EAEAEA; border-bottom: 1px solid #EAEAEA; border-right: 1px solid #EAEAEA;" valign="top">{{var order.getShippingDescription()}} &nbsp;</td>
</tr>
</tbody>
</table>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>{{/depend}} {{layout handle="sales_email_order_items" order=$order}}
<p style="font-size: 12px; margin: 0 0 10px 0;">{{var order.getEmailCustomerNote()}}</p>
</td>
</tr>
</tbody>
</table>

第二个表不符合600宽度,似乎在某处被覆盖。我想如果我写任何类型的内联样式,它会覆盖其他所有内容。 ......我基本上希望我的第二张桌子与第一张桌子的尺寸相同。

我试过在第一张桌子里放一个额外的<tr><td></td></tr>并完全取消第二张桌子,但是比前面两张桌子更宽一点并且在另外两张桌子上取消了另一张桌子

*****这是发送电子邮件*****

这是header.phtml文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"> <!-- utf-8 works for most cases -->
        <meta name="viewport" content="width=device-width"> <!-- Forcing initial-scale shouldn't be necessary -->
        <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Use the latest (edge) version of IE rendering engine -->
        <title></title>
        <!-- The title tag shows in email notifications, like Android 4.4. -->
        <style type="text/css">
            /* What it does: Remove spaces around the email design added by some email clients. */
            /* Beware: It can remove the padding / margin and add a background color to the compose a reply window. */
            html,
            body {
            margin: 0;
            padding: 0;
            height: 100% !important;
            width: 100% !important;
            }
            /* What it does: Stops email clients resizing small text. */
            * {
            -ms-text-size-adjust: 100%;
            -webkit-text-size-adjust: 100%;
            }
            /* What it does: Forces Outlook.com to display emails full width. */
            .ExternalClass {
            width: 100%;
            }
            /* What it does: Stops Outlook from adding extra spacing to tables. */
            table,
            td {
            mso-table-lspace: 0pt;
            mso-table-rspace: 0pt;
            }
            /* What it does: Fixes webkit padding issue. */
            table {
            border-spacing:0 !important;
            }
            /* What it does: Fixes Outlook.com line height. */
            .ExternalClass,
            .ExternalClass * {
            line-height: 100%;
            }
            /* What it does: Fix for Yahoo mail table alignment bug. */
            table {
            border-collapse: collapse;
            margin: 0 auto;
            }
            /* What it does: Uses a better rendering method when resizing images in IE. */
            img {
            -ms-interpolation-mode:bicubic;
            }
            /* What it does: Overrides styles added when Yahoo's auto-senses a link. */
            .yshortcuts a {
            border-bottom: none !important;
            }
            /* What it does: Overrides blue, underlined link auto-detected by iOS Mail. */
            /* Create a class for every link style needed; this template needs only one for the link in the footer. */
            .mobile-link--footer a {
            color: #666666 !important;
            }
            /* What it does: Overrides styles added images. */
            img {
            border:0 !important;
            outline:none !important;
            text-decoration:none !important;
            }
            @media screen and (min-device-width: 768px) {
            /* Hides the nav menu except for gmail */
            *[class].desktopHide {
            display: none !important;
            }
            }
            /* Media Queries */
            @media screen and (max-device-width: 600px), screen and (max-width: 600px) {
            /* What it does: Overrides email-container's desktop width and forces it into a 100% fluid width. */
            .email-container {
            width: 100% !important;
            }
            /* Hides the nav menu except for gmail */
            *[class].mobileHide {
            display: none !important;
            }
            /* What it does: Forces images to resize to the width of their container. */
            img[class="fluid"],
            img[class="fluid-centered"] {
            width: 100% !important;
            max-width: 100% !important;
            height: auto !important;
            margin: auto !important;
            }
            /* And center justify these ones. */
            img[class="fluid-centered"] {
            margin: auto !important;
            }
            /* What it does: Forces images to resize to the width of their container. */
            img[class="stack-column"],
            img[class="stack-column-center"] {
            width: 100% !important;
            max-width: 600px !important;
            height: auto !important;
            margin: auto !important;
            }
            img[class="stack-column-half"],
            img[class="stack-column-center-half"] {
            width: 100% !important;
            max-width: 300px !important;
            height: auto !important;
            margin: auto !important;
            }
            img[class="stack-column-third"],
            img[class="stack-column-third-center"] {
            width: 100% !important;
            max-width: 120px !important;
            height: auto !important;
            margin: auto !important;
            }
            /* What it does: Forces table cells into full-width rows. */
            td[class="stack-column"],
            td[class="stack-column-center"] {
            display: block !important;
            width: 100% !important;
            direction: ltr !important;
            }
            /* What it does: Forces table cells into full-width rows. */
            td[class="stack-column-half"],
            td[class="stack-column-half-center"] {
            display: inline-block !important;
            width: 50% !important;
            direction: ltr !important;
            }
            td[class="stack-column-third"],
            td[class="stack-column-third-center"] {
            display: inline-block !important;
            width: 32% !important;
            direction: ltr !important;
            }
            /* And center justify these ones. */
            td[class="stack-column-center"] {
            text-align: center !important;
            }
            /* Data Table Styles */
            /* What it does: Hides table headers */
            td[class="data-table-th"] {
            display: none !important;
            }
            /* What it does: Hides table headers */
            td[class="data-table-th"] {
            display: none !important;
            }
            /* What it does: Change the look and layout of the remaining td's */
            td[class="data-table-td"],
            td[class="data-table-td-title"] {
            display: block !important;
            width: 100% !important;
            border: 0 !important;
            }
            /* What it does: Changes the appearance of the first td in each row */
            td[class="data-table-td-title"] {
            font-weight: bold;
            color: #000000;
            padding: 10px 0 0 0 !important;
            border-top: 2px solid #eeeeee !important;
            }
            /* What it does: Changes the appearance of the other td's in each row */
            td[class="data-table-td"] {
            padding: 5px 0 0 0 !important
            }
            /* What it does: Provides a visual divider between table rows. In this case, a bit of extra space. */
            td[class="data-table-mobile-divider"] {
            display: block !important;
            height: 20px;
            }
            /* END Data Table Styles */
            }
        </style>
    </head>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#f8f8f8" style="margin: 0px; padding: 0px; zoom: 100%;">
        <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%" bgcolor="#f8f8f8" style="border-collapse:collapse;">
            <tbody>
                <tr>
                    <td>
                    <!-- Visually Hidden Preheader Text : BEGIN -->
                    <div style="display:none; visibility:hidden; opacity:0; color:transparent; height:0; width:0; line-height:0; overflow:hidden; mso-hide: all;">
                    Shop new arrivals now!
                    </div>
                    <!-- Visually Hidden Preheader Text : END -->
                    <!-- Email wrapper : BEGIN -->
                    <table border="0" width="600" cellpadding="0" cellspacing="0" align="center" bgcolor="#ffffff" style="width:600px; margin: auto;" class="email-container">
                        <!-- Full Width, Fluid Column : BEGIN -->
                        <tbody>
                            <tr>
                                <td style="font-family:Helvetica, Arial, sans-serif; color: #999999; font-size:10px; text-align: right;">
                                <a href="[[BrowserLink]]" title="View In Browser" style="color: #999999;">View in Browser</a>
                                </td>
                            </tr>
                            <!-- Full Width, Fluid Column : END -->
                            <tr>
                                <td>
                                <!-- Logo + Links : BEGIN -->
                                <table border="0" width="100%" cellpadding="0" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td height="5" style="font-size: 0; line-height: 0;">&nbsp;</td>
                                        </tr>
                                        <tr>
                                            <td valign="middle" align="center" style="padding:0px 0; text-align:center; line-height: 0;" class="stack-column-center">
                                            <a href="http://www.website.com/?email=#Listrak\Email#" title="website.com"><img src="http://cdn.website.com/media/wysiwyg/emails/ecomm/2016_0524_dresses/0524_Dresses_09.jpg" alt="website Stone" width="600" height="70" border="0" style="margin: auto;"></a>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td height="5" style="font-size: 0; line-height: 0;">&nbsp;</td>
                                        </tr>
                                    </tbody>
                                </table>
                                <!-- Logo + Links : END -->
                                <!-- Menu : BEGIN -->
                                <table border="0" width="100%" cellpadding="0" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                                <!-- Menu : END -->
                                <!-- Free Shipping Pre-Header : BEGIN -->
                                <table width="100%" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td>
                                            <table align="center" border="0" cellpadding="0" cellspacing="0">
                                                <tbody>
                                                    <tr>
                                                        <td>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                                <table class="mobileHide" width="100%" border="0" cellpadding="0" cellspacing="0">
                                    <tbody>
                                        <tr>
                                            <td style="border-top: 0px solid #eeeeee;" height="2">
                                            <img src="http://media.website.com/6385/Shared/sca/spacer.gif" style="display: block;" height="1" border="0">
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>

2 个答案:

答案 0 :(得分:1)

实际上两张桌子都有相同的宽度。如果您更新 border =&#34; 01&#34; ,那么您将正确看到表格的宽度。

如果要删除第二个表,请在第一个表中添加另一行,其中colspan属性等于3,因为第一个表有3列。

<tr><td colspan="3"></td></tr>

我想建议使用css类而不是内联样式。

答案 1 :(得分:1)

只用两个表查看第一段代码,它们以相同的宽度显示。我修改了你的代码,在两个表上都放了一个2号红色边框,你可以看到它们的宽度确实相同。

&#13;
&#13;
<table border="2" bordercolor="red" width="600" cellspacing="0" cellpadding="0">
  <thead>
    <tr>
      <th style="font-size: 13px; padding: 5px 9px 6px 9px; line-height: 1em;" align="left" bgcolor="#EAEAEA" width="300">Shipping Information:</th>
      <th width="10">&nbsp;</th>
      <th style="font-size: 13px; padding: 5px 9px 6px 9px; line-height: 1em;" align="left" bgcolor="#EAEAEA" width="300">Shipping Method:</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="font-size: 12px; padding: 7px 9px 9px 9px; border-left: 1px solid #EAEAEA; border-bottom: 1px solid #EAEAEA; border-right: 1px solid #EAEAEA;" valign="top">{{var order.getShippingAddress().format('html')}} &nbsp;</td>
      <td>&nbsp;</td>
      <td style="font-size: 12px; padding: 7px 9px 9px 9px; border-left: 1px solid #EAEAEA; border-bottom: 1px solid #EAEAEA; border-right: 1px solid #EAEAEA;" valign="top">{{var order.getShippingDescription()}} &nbsp;</td>
    </tr>
  </tbody>
</table>
<table border="2" bordercolor="red" width="600" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td>
        {{/depend}} {{layout handle="sales_email_order_items" order=$order}}
        <p style="font-size: 12px; margin: 0 0 10px 0;">{{var order.getEmailCustomerNote()}}</p>
      </td>
    </tr>
  </tbody>
</table>
&#13;
&#13;
&#13;

至于你的第二部分代码(header.phtml文件),我说实话,我不太明白这与你的第一部分有什么联系。您提供的代码是不完整的,表格中的表格中的嵌套表格(其中许多是单行,单个数据中心)过于复杂,无法在此处进行解密。

由于这是一封电子邮件,而且我在自己的战斗中获得了战斗痕迹,在电子邮件中获得正确的HTML格式,我会说你必须抛弃所有现代标准和HTML开发风格,特别是当它涉及到微软电子邮件客户端,并再次假装它是1990年代。遗憾的是,有时需要嵌套表来获得你想要的东西( shudder )。就像任何HTML设计一样,布局越简单,您就越容易实现它。

在获取HTML电子邮件以正常运行时,我发现这些链接对于参考和教育非常宝贵。希望他们也会帮助你: