通过锚标记使整个 <td> 可点击
Posted
技术标签:
【中文标题】通过锚标记使整个 <td> 可点击【英文标题】:Making whole <td> Clickable through anchor tag 【发布时间】:2013-07-23 19:52:59 【问题描述】:在为 Outlook 创建 html 电子邮件时,我偶然发现了一个我无法解决的小问题。
下面是一个 html 表格的屏幕截图。我需要使整个区域可点击,而不仅仅是文本。当我将 <a href="#">
放在 <td>
或 <table>
周围时,它在浏览器中有效,但在 Outlook 中无效。
代码如下:
<table border="0" cellpadding="0" cellspacing="0" style="border-top-left-radius: 5px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;background-color: #2FBA45;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;">
<tbody>
<tr>
<td align="center" valign="middle" style="font-family: Arial;font-size: 22px;padding: 15px;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;">
<a href="#" title="Yes please, send me a quote." target="_self" style="font-weight: bold;letter-spacing: -0.5px;line-height: 100%;text-align: center;text-decoration: none;color: #FFFFFF;word-wrap: break-word !important; display:block; width:100%; height:100%">Yes please, send me a quote.</a>
</td>
</tr>
</tbody>
</table>
【问题讨论】:
查看此链接以了解电子邮件客户端支持哪些 HTML 标准 campaignmonitor.com/css @AnaMaria 我知道,但如果可能,我要求替换此代码 【参考方案1】:我知道这是一个老问题,但我一直在寻找这个问题的答案(Outlook 中可点击的整个按钮)并偶然发现了以下解决方案:
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td align="center" valign="middle" >
<!-- start of Outlook compatible button generated by http://buttons.cm/ -->
<div><!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://yoururlhere.com/" style="height:52px;v-text-anchor:middle;width:330px;" arcsize="10%" stroke="f" fillcolor="#2fba45">
<w:anchorlock/>
<center>
<![endif]-->
<a href="http://yoururlhere.com/"
style="background-color:#2fba45;border-radius:5px;color:#ffffff;display:inline-block;font-family:sans-serif;font-size:13px;font-weight:bold;line-height:52px;text-align:center;text-decoration:none;width:330px;-webkit-text-size-adjust:none;">Yes please, send me a quote.</a>
<!--[if mso]>
</center>
</v:roundrect>
<![endif]--></div>
<!-- end of Outlook compatible button generated by http://buttons.cm/ -->
</td>
</tr>
</tbody>
</table>
注意我没有测试上面的代码。
其他答案确实链接到campaignmonitor 网站,但不是this link which provided the solution。
campaignmonitor 上的那篇博文提到,他们基于 Stig M(推特上的@stigm)创建的解决方案创建了一个 specific website to generate outlook compatible clickable buttons - http://buttons.cm 。
我不为campaignmonitor工作。
希望对某人有所帮助。
【讨论】:
【参考方案2】:试试这个
http://jsfiddle.net/KrRzP/
<table border="0" cellpadding="0" cellspacing="0" style="border-top-left-radius: 5px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border-bottom-left-radius: 5px;background-color: #2FBA45;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt; cursor:pointer;">
<tbody>
<tr>
<td align="center" valign="middle" style="font-family: Arial;font-size: 22px;padding: 15px;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;">
<a href="http://www.example.org" title="Yes please, send me a quote." target="_self" style="font-weight: bold;letter-spacing: -0.5px;line-height: 100%;text-align: center;text-decoration: none;color: #FFFFFF;word-wrap: break-word !important; display:block; width:100%; height:100%">Yes please, send me a quote.</a>
</td>
</tr>
</tbody>
</table>
【讨论】:
即使在浏览器中也无法正常工作,是否有我更改我的代码(如 span 等)以获得相同的输出?【参考方案3】:您可以尝试使用onClick
、<td onClick="go to anchor">
。在内联样式中,您应该添加cursor: pointer
,以便将光标更改为“悬停链接”指针。
【讨论】:
【参考方案4】:尝试删除target="_self"
。由于 Outlook 是一个电子邮件客户端,它可能无法识别它并可能导致问题。
附带说明,如果您在电子邮件中使用锚链接(链接同一页面上的其他地方),则并非所有电子邮件浏览器都完全支持。这是support chart
【讨论】:
以上是关于通过锚标记使整个 <td> 可点击的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 CSS 使 HTML 锚标记不可点击/不可链接?