【问题标题】:HTML Emails: making table clickable using <a href>HTML 电子邮件:使用 <a href> 使表格可点击
【发布时间】:2012-02-23 09:17:26
【问题描述】:

我正在构建一个 HTML 电子邮件,并希望使整个表格可点击。

我已经想出了一个 JavaScript 解决方案来做到这一点,它工作得非常好,但是我更愿意只将表格包装在标签中而不使用 JavaScript。

<a href="#">
  <table border="0">
   <tr>
    <td style="width: 100px; height: 100px">
    </td>          
   </tr> 
  </table>
</a>

这在 Firefox 中运行良好,尽管它不是有效的 HTML,因为我将块级元素 () 包含在内联元素 () 中。

我目前无法在所有电子邮件平台上对此进行测试,所以想知道是否有任何已知的电子邮件平台不支持这种方法?

任何帮助将不胜感激。

如果有人正在寻找执行相同功能的 JavaScript 解决方案,那么下面是一个:

            <html>
                <head>
                <title></title>
                <script type="text/javascript">
                function link(url){
                alert("url is "+url);
                }
                </script>
                </head>
                <body>
                <table style="background-color: red" border="0" onclick="link('test url');" onmouseover="this.style.cursor='pointer';">
                  <tr>
                    <td style="width: 100px">This is a </td>
                    <td style="width: 100px; background-color: blue">test </td>
                    <td style="width: 100px">table </td>
                  </tr>
                </table>
                </body>
            </html>

【问题讨论】:

  • 为什么要让整个表格都可以点击,去一个链接?这对我来说似乎不是一个非常有用的设计。
  • @Tim 我不能代表 OP,但它是一种常见的电子邮件编码方式,因为您会遇到图像阻塞、缺乏支持或标签上呈现不一致等问题,例如 &lt;div&gt;s .此外,营销经理经常想要“最大的可点击区域”——电子邮件的目标通常只是获得尽可能多的点击,而不是充当信息存储库。
  • +1 Blowski,感谢您的澄清。

标签: html html-email


【解决方案1】:

这在 Firefox 中有效,因为在 HTML5 中,您可以将链接包裹在块元素周围(&lt;table&gt; 是)。

但是,在电子邮件中,您会被 HTML4 以及其中非常有限的子集所困。这包括使用 JavaScript - 这在 Gmail、Yahoo、Outlook 和所有其他大型邮件客户端中不起作用。

所以你有两个选择:

  • 将您的表格保存为图像,然后将链接标签包裹在其周围。缺点是图片关闭时您的文字不会显示。
  • 使表格中的所有内容都可点击 - 即在所有文本位周围重复您的“a”标签。这里的缺点是任何空白区域(即没有文本或图像的区域)都无法点击。

这些链接可能对您有所帮助:

【讨论】:

  • 非常感谢。 “将表格另存为图像”选项不可行,因为其中的数据是动态的。我正在考虑添加 JavaScript 然后另外,使表格的主要组件可点击,这样如果 JavaScript 被禁用或不工作,那么至少一些表格仍然是可点击的。这听起来像是我的最佳选择吗?
  • 因此,将相同的链接包裹在多个文本位上确实是您唯一的选择。您可以使用大 line-heights 并确保您使用的任何文本都显示为块元素,以尽量减少“空白不可点击”问题。
  • JavaScript 在大约 99% 的情况下无法工作,并且会损害您的交付能力。我根本不会使用它。
  • 此外,为了解决“空白不可点击”的问题,我发现将左/右填充添加到 内的 中,其顶部/底部填充大致相等size 创建了一个很好的大可点击区域,该区域扩展到实际文本之外。对我来说,这比大线高更有帮助。
  • @PaulPrewett 你能分享代码吗?
【解决方案2】:

你不能在桌子周围做&lt;a&gt;。您需要在每个 td 中执行 &lt;a&gt;s。 我只是为一个客户做了这个,并在 Outlook 2010 中对其进行了测试,所以我知道这是可行的; 如果它有文本,请使文本可点击。您可以使用 style="text-decoration:none;" 修复下划线。在其他领域,我会在里面放一个透明的 gif。但是,gif 必须是表格中该字段的完整宽度和高度……否则它将无法正常工作。

不优雅..但它有效。 现在,由于您可以在表格中使用背景(也可以在 Outlook 中使用.. 有一些可用的代码来源),所以您可以随心所欲地制作它...

【讨论】:

  • 我遇到的问题是只有文本变得可点击,而不是整个 td 单元格,仍在寻找 Outlook 的解决方案。我找不到您提到的透明 gif 指南。
【解决方案3】:

您将无法在电子邮件中使用 javascript...所有样式都需要内联,也没有 javascript,电子邮件客户端不会呈现。

【讨论】:

  • 我试图通过在 .. 中包含任何文本、图像或空白来使整个表格可点击。我还为每个 td 指定了行高。然而,尽管这在 Firefox 和 Chrome 中看起来不错,但 Safari 不知何故为某些元素增加了一点高度,就像我将其上传到的电子邮件客户端一样。有什么建议 ?我应该保持简单,只让表格的某些部分可点击吗?
【解决方案4】:

Litmus 对此有多种选择。其中一个使用表格边框和填充作为hack:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <table border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" style="-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;" bgcolor="#e9703e"><a href="#" target="_blank" style="font-size: 16px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; text-decoration: none; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; padding: 12px 18px; border: 1px solid #e9703e; display: inline-block;">I am a button &rarr;</a></td>
        </tr>
      </table>
    </td>
  </tr>
</table>

在大多数电子邮件客户端上进行了尝试和工作。尽管我仍在寻找无需对边框/填充进行硬编码的方法。

来源:https://litmus.com/blog/a-guide-to-bulletproof-buttons-in-email-design

【讨论】:

    【解决方案5】:

    并不是你希望整个表格都可以点击,而是你希望你的 a href 标记覆盖在你的表格上。

    这是一个使用您提供的表格的快速示例。

    <table border="0" cellpadding ="0" width="100%">
     <tr>
      <td style="width: 100px; height: 100px">
        <a href="#" style="display:block; width:100%; height:100%"></a>
      </td>          
     </tr> 
    </table>
    

    【讨论】:

    • 我尝试使用这种方法,并发现(通过 Acid On 的电子邮件)它在任何版本的 Outlook 中都不起作用。 (而 Outlook 对这种解决方法来说非常重要,因为其他电子邮件客户端确实支持使用块级链接包装表格)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签