为啥我的电子邮件 HTML 顶部的左边距和右边距没有变化?

Posted

技术标签:

【中文标题】为啥我的电子邮件 HTML 顶部的左边距和右边距没有变化?【英文标题】:Why left and right margins don't change in the top of my e-mail's HTML?为什么我的电子邮件 HTML 顶部的左边距和右边距没有变化? 【发布时间】:2016-10-04 18:45:33 【问题描述】:

我正在努力更改电子邮件 html 顶部文本的边距。我需要我的文本在左侧占据更多空间,这样它就不会挤在右上角,也不会跑 4 行。代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<title></title>
	<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
	<meta content="width=320, target-densitydpi=device-dpi" name="viewport" />
	<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600" rel="stylesheet" type="text/css" />
	<style type="text/css">/* Mobile-specific Styles */
@media only screen and (max-width: 660px)  
table[class=w0], td[class=w0]  width: 0 !important; 
table[class=w10], td[class=w10], img[class=w10]  width:10px !important; 
table[class=w15], td[class=w15], img[class=w15]  width:5px !important; 
table[class=w30], td[class=w30], img[class=w30]  width:10px !important; 
table[class=w60], td[class=w60], img[class=w60]  width:10px !important; 
table[class=w125], td[class=w125], img[class=w125]  width:80px !important; 
table[class=w130], td[class=w130], img[class=w130]  width:55px !important; 
table[class=w140], td[class=w140], img[class=w140]  width:90px !important; 
table[class=w160], td[class=w160], img[class=w160]  width:180px !important; 
table[class=w170], td[class=w170], img[class=w170]  width:100px !important; 
table[class=w180], td[class=w180], img[class=w180]  width:80px !important; 
table[class=w195], td[class=w195], img[class=w195]  width:80px !important; 
table[class=w220], td[class=w220], img[class=w220]  width:80px !important; 
table[class=w240], td[class=w240], img[class=w240]  width:180px !important; 
table[class=w255], td[class=w255], img[class=w255]  width:185px !important; 
table[class=w275], td[class=w275], img[class=w275]  width:135px !important; 
table[class=w280], td[class=w280], img[class=w280]  width:135px !important; 
table[class=w300], td[class=w300], img[class=w300]  width:140px !important; 
table[class=w325], td[class=w325], img[class=w325]  width:95px !important; 
table[class=w360], td[class=w360], img[class=w360]  width:140px !important; 
table[class=w410], td[class=w410], img[class=w410]  width:180px !important; 
table[class=w470], td[class=w470], img[class=w470]  width:200px !important; 
table[class=w580], td[class=w580], img[class=w580]  width:280px !important; 
table[class=w640], td[class=w640], img[class=w640]  width:300px !important; 
table[class*=hide], td[class*=hide], img[class*=hide], p[class*=hide], span[class*=hide]  display:none !important; 
table[class=h0], td[class=h0]  height: 0 !important; 
p[class=footer-content-left]  text-align: center !important; 
#headline p  font-size: 30px !important; 
.article-content, #left-sidebar -webkit-text-size-adjust: 90% !important; -ms-text-size-adjust: 90% !important; 
.header-content, .footer-content-left -webkit-text-size-adjust: 80% !important; -ms-text-size-adjust: 80% !important;
#customHeaderImage  height: auto;width: 140px !important; line-height: 100%;
.banner width:100%;
.banner-content width:50px; padding-top:0 !important; padding-bottom: 0 !important; display:none;
.banner-cont-sm display:block !important;
.hidden-sm  display:none;
.display-sm display:block !important;
table border-spacing:0; border-color:none;
  
/* Client-specific Styles */
.display-sm display:none;
#outlook a  padding: 0; 	/* Force Outlook to provide a "view in browser" button. */
body  width: 100% !important; 
.ReadMsgBody  width: 100%; 
.ExternalClass  width: 100%; display:block !important;  /* Force Hotmail to display emails at full width */
/* Reset Styles */
/* Add 100px so mobile switch bar doesn't cover street address. */
body  background-color: #dedede; margin: 0; padding: 0; color: #464646 
img  outline: none; text-decoration: none; display: block;
br, strong br, b br, em br, i br  line-height:100%; 
h1, h2, h3, h4, h5, h6  line-height: 100% !important; -webkit-font-smoothing: antialiased; 
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a  color: blue !important; 
h1 a:active, h2 a:active,  h3 a:active, h4 a:active, h5 a:active, h6 a:active 	color: red !important; 
/* Preferably not the same color as the normal header link color.  There is limited support for psuedo classes in email clients, this was added just for good measure. */
h1 a:visited, h2 a:visited,  h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited  color: purple !important; 
/* Preferably not the same color as the normal header link color. There is limited support for psuedo classes in email clients, this was added just for good measure. */  
table td, table tr  border-collapse: collapse; 
.yshortcuts, .yshortcuts a, .yshortcuts a:link,.yshortcuts a:visited, .yshortcuts a:hover, .yshortcuts a span 
color: black; text-decoration: none !important; border-bottom: none !important; background: none !important;
	/* Body text color for the New Yahoo.  This example sets the font of Yahoo's Shortcuts to black. */
/* This most probably won't work in all email clients. Don't include code blocks in email. */
code 
  white-space: normal;
  word-break: break-all;

#background-table  background-color: #dedede; 
/* Webkit Elements */
#top-bar  border-radius:6px 6px 0px 0px; -moz-border-radius: 6px 6px 0px 0px; -webkit-border-radius:6px 6px 0px 0px; -webkit-font-smoothing: antialiased; background-color: #fff; color: #ededed; 
#top-bar a  font-weight: bold; color: #ffffff; text-decoration: none;
#footer  border-radius:0px 0px 6px 6px; -moz-border-radius: 0px 0px 6px 6px; -webkit-border-radius:0px 0px 6px 6px; -webkit-font-smoothing: antialiased; 
/* Fonts and Content */
body, td  font-family: 'Source Sans Pro', sans-serif; 
.header-content, .footer-content-left, .footer-content-right  -webkit-text-size-adjust: none; -ms-text-size-adjust: none; 
/* Prevent Webkit and Windows Mobile platforms from changing default font sizes on header and footer. */
.header-content  font-size: 12px; color: #000000; 
.header-content a  font-weight: bold; color: #ffffff; text-decoration: none; 
#headline p  color: #444444; font-family: 'Source Sans Pro', sans-serif; font-size: 36px; text-align: center; margin-top:0px; margin-bottom:30px; 
#headline p a  color: #444444; text-decoration: none; 
.article-title  font-size: 18px; line-height:24px; color: #464646; font-weight:bold; margin-top:0px; margin-bottom:18px; font-family: 'Source Sans Pro', sans-serif; 
.article-title a  color: #000000; text-decoration: none; 
.article-title.with-meta margin-bottom: 0;
.article-meta  font-size: 13px; line-height: 20px; color: #ccc; font-weight: bold; margin-top: 0;
.article-content  font-size: 13px; line-height: 18px; color: #444444; margin-top: 0px; margin-bottom: 18px; font-family: 'Source Sans Pro', sans-serif; 
.article-content a  color: #20C5BA; font-weight:bold; text-decoration:none; 
.article-content img  max-width: 100% 
.article-content ol, .article-content ul  margin-top:0px; margin-bottom:18px; margin-left:19px; padding:0; 
.article-content li  font-size: 13px; line-height: 18px; color: #444444; 
.article-content li a  color: #20C5BA; text-decoration:underline; 
.article-content p margin-bottom: 15px;
.footer-content-left  font-size: 12px; line-height: 15px; color: #ededed; margin-top: 0px; margin-bottom: 15px; 
.footer-content-left a  color: #ffffff; font-weight: bold; text-decoration: none; 
.footer-content-right  font-size: 11px; line-height: 16px; color: #ededed; margin-top: 0px; margin-bottom: 15px; 
.footer-content-right a  color: #ffffff; font-weight: bold; text-decoration: none; 
#footer  color: #ededed; 
#footer a  color: #392f46; text-decoration: none; 
#permission-reminder  white-space: normal; 
#street-address  color: #b0b0b0; white-space: normal; 
	</style>
	<!--[if gte mso 9]>
<style _tmplitem="266" >
.article-content ol, .article-content ul 
   margin: 0 0 0 24px;
   padding: 0;
   list-style-position: inside;

</style>
<![endif]-->
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" id="background-table" >
	<tbody>
		<tr>
			<td align="center" style="background-color:#dadada">
			<table border="0" cellpadding="0" cellspacing="0" class="w640" style="margin:0 10px;" >
				<tbody>
					<tr>
						<td class="w640"  ></td>
					</tr>
					<tr>
						<td class="w640" >
						<table border="0" cellpadding="0" cellspacing="0" class="w640" id="top-bar" >
							<tbody>
								<tr style="background-color:#fff">
									<td class="w15"  ></td>
									<td align="left" class="w325" valign="middle" >
									<table border="0" cellpadding="0" cellspacing="0" class="w325" >
										<tbody>
											<tr>
												<td class="w325"  ></td>
											</tr>
										</tbody>
									</table>

									<div class="header-content"></div>

									<table border="0" cellpadding="0" cellspacing="0" class="w325" >
										<tbody>
											<tr>
												<td class="w325"  ></td>
											</tr>
										</tbody>
									</table>
									</td>
									<td class="w30" ></td>
									<td align="right" class="w255" valign="middle" >
									<table border="0" cellpadding="0" cellspacing="0" class="w255" >
										<tbody>
											<tr>
												<td class="w255"  ></td>
											</tr>
											<tr>
												<td>
												<p style="text-align: right;color: #276CA8;padding: 10px 10px 10px 10px;font-size:10px; font-weight: bold"><em>We are a charity that provides emergency care across Australia. By signining up, you can win $50,000 and help us in saving over 5,000 lives a year. Can&#39;t see this e-mail?<br />
												<a data-id="577666557" data-title="View it online!" href="ocx_mirror_page" style="color:#276CA8;font-weight: bold"><u>View it online!</u></a></em></p>
												</td>
											</tr>
										</tbody>
									</table>
									</td>
									</tr>
									</tbody>
									</table>
								</td>
							</tr>
						</tbody>
				</table>
			</td>
		</tr>
	</tbody>
</table>
</body>
</html>

【问题讨论】:

对于 HTML 邮件,仅使用内联样式,因为大多数邮件客户端会删除标题中的所有内容,包括 css 样式链接。 【参考方案1】:

table 中的width 总是很棘手。 td 的宽度不仅取决于应用到它的宽度,还取决于 body 和其他 tds 的宽度,它们是它们的兄弟。因此,您必须调整其他 tds 和内部 table 宽度,以便为文本提供更多空间。

<table border="0" cellpadding="0" cellspacing="0" id="background-table" >
    <tbody>
        <tr>
            <td align="center" style="background-color:#dadada">
            <table border="0" cellpadding="0" cellspacing="0" class="w640" style="margin:0 10px;" >
                <tbody>
                    <tr>
                        <td class="w640"  ></td>
                    </tr>
                    <tr>
                        <td class="w640" >
                        <table border="0" cellpadding="0" cellspacing="0" class="w640" id="top-bar" >
                            <tbody>
                                <tr style="background-color:#fff">
                                    <td class="w15"  ></td>
                                    <td align="left" class="w325" valign="middle" >
                                    <table border="0" cellpadding="0" cellspacing="0" class="w325" >
                                        <tbody>
                                            <tr>
                                                <td class="w325"  ></td>
                                            </tr>
                                        </tbody>
                                    </table>

                                    <div class="header-content"></div>

                                    <table border="0" cellpadding="0" cellspacing="0" class="w325" >
                                        <tbody>
                                            <tr>
                                                <td class="w325"  ></td>
                                            </tr>
                                        </tbody>
                                    </table>
                                    </td>
                                    <td class="w30" ></td>
                                    <td align="right" class="w255" valign="middle" >
                                    <table border="0" cellpadding="0" cellspacing="0" class="w255" >
                                        <tbody>
                                            <tr>
                                                <td class="w255"  ></td>
                                            </tr>
                                            <tr>
                                                <td>
                                                <p style="text-align: right;color: #276CA8;padding: 10px 10px 10px 10px;font-size:10px; font-weight: bold"><em>We are a charity that provides emergency care across Australia. By signining up, you can win $50,000 and help us in saving over 5,000 lives a year. Can't see this e-mail?<br>
                                                <a data-id="577666557" data-title="View it online!" href="ocx_mirror_page" style="color:#276CA8;font-weight: bold"><u>View it online!</u></a></em></p>
                                                </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                    </td>
                                    </tr>
                                    </tbody>
                                    </table>
                                </td>
                            </tr>
                        </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table>

如果您不需要特殊布局,您可以删除所有widths。所有td 都会根据其容器自动调整。

我粗略地改变了另一个宽度和tds 和tables。如果您正在创建电子邮件模板,最好内联所有样式。大多数电子邮件客户端都会忽略标题中的样式。

【讨论】:

谢谢,这工作! 是的,我做到了,但它恢复为 0,并给出以下消息:感谢您的反馈!一旦您总共获得 15 点声望,您的投票将改变公开显示的帖子得分。

以上是关于为啥我的电子邮件 HTML 顶部的左边距和右边距没有变化?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式使用自动调整大小掩码为固定左边距和灵活右边距设置文本字段

为啥我的 HTML/CSS 网站顶部有空白? [复制]

左右引导填充不起作用

微信小程序:margin padding position 属性

微信小程序:margin padding position 属性

左边是个图片的DIV 右边是个div 右边文字div的为啥在最下面的导航下面?