基础

网格

如果您熟悉 Foundation for Sites 网格,那么您使用 Foundation for Emails 得心应手。

网格具有两个核心元素:。行定义水平内容部分,列将行划分到并排部分中。

容器

所有电子邮件都应该有一个容器元素。这给电子邮件在更大屏幕上的电子邮件客户端提供了一个最大宽度。它还能让电子邮件居中。

容器是一个完整表格,因此它需要标签 <table><tr>、最后是 <td>。类 .container 位于 <table> 中。

HTML
<container>All the rows go here</container>
<html>

<head></head>

<body>
  <table align="center" class="container">
    <tbody>
      <tr>
        <td>All the rows go here</td>
      </tr>
    </tbody>
  </table>
</body>

</html>

演示


行是带有 <tbody><tr><table>。在这个 <tr> 中,您放置每个单独的列。<table> 也有类 .row

在 Inky HTML 中,使用 <row> 标签创建行。

HTML
<container>
  <row>
    Columns go here
  </row>
</container>
<html>

<head></head>

<body>
  <table align="center" class="container">
    <tbody>
      <tr>
        <td>
          <table class="row">
            <tbody>
              <tr>
                Columns go here
              </tr>
            </tbody>
          </table>&zwj;
        </td>
      </tr>
    </tbody>
  </table>
</body>

</html>

演示


列的结构有点复杂。在最上层,列是带有类 .columns<th>

<th> 内是另一个表格。列的内容放入 <th> 中。该表格标题的正下方应该有另一个具有类 .expander<th>。该空元素帮助列在小屏幕上扩展到全宽。

到目前为止,我们完整的列语法如下

<th class="columns first last">
  <table>
    <tr>
      <th>This is a column. Columns contain your content.</th>
      <th class="expander"></th>
    </tr>
  </table>
</th>

在 Inky HTML 中,使用 <columns> 类创建列。

HTML
<columns>This is a column. Columns contain your content.</columns>
<html>

<head></head>

<body>
  <th class="small-12 large-12 columns first last">
    <table>
      <tbody>
        <tr>
          <th>This is a column. Columns contain your content.</th>
          <th class="expander"></th>
        </tr>
      </tbody>
    </table>
  </th>
</body>

</html>

演示

尺寸

列具有 1 到 12 之间的尺寸——这是元素的宽度。Foundation 使用 12 列网格,因此 6 列是整行的宽度的一半。

使用类 .large-n.small-n 设置列大小,其中 n 是列的宽度。.small- 大小应用于移动电子邮件客户端,而 .large- 大小应用于桌面电子邮件客户端。

在 Inky HTML 中,在 <columns> 标签上设置属性 smalllarge,大小指定您想要的尺寸。如果您未填充 small,则默认使用 12。如果您填充 small 但未填充 large,则 large 将使用与 small 相同的值。

<columns small="12" large="6"></columns>

第一个和最后一个类

.first 类添加适量 padding-left 以将内容与容器边缘隔开。.last 类添加到行中的最后一组列以向该列添加 padding-right。如果您在 .first.last 之间有列,中间列不需要这些类。

这些类存在的原因是 :last-child 一类的 CSS 属性在大多数电子邮件客户端中无效,因此需要一个类。

在 Inky HTML 中,这些类会自动为您添加。

HTML
<columns large="4">One</columns>
<columns large="4">Two</columns>
<columns large="4">Three</columns>
<html>

<head></head>

<body>
  <th class="small-12 large-4 columns first">
    <table>
      <tbody>
        <tr>
          <th>One</th>
        </tr>
      </tbody>
    </table>
  </th>
  <th class="small-12 large-4 columns">
    <table>
      <tbody>
        <tr>
          <th>Two</th>
        </tr>
      </tbody>
    </table>
  </th>
  <th class="small-12 large-4 columns last">
    <table>
      <tbody>
        <tr>
          <th>Three</th>
        </tr>
      </tbody>
    </table>
  </th>
</body>

</html>

演示

展开器

.expander 会避免 Outlook 中的渲染错误,该错误有时会导致列无法展开至完整宽度。<th> 的默认行为是忽略 width 属性,然后善解人意地仅占用由内容指定的空间,而 expander <th> 的存在会使内容 <th> 变得“贪婪”,并占用为其留出的全部空间,直至达到 width(即 100%)中指定的值。它们被设置为不显示,但会将总宽度踢出到 100% 外,这会强制它们的兄弟 <th> 充分展开。


折叠

折叠行会去除每一列中的留白,即它们之间的间距。向行添加 .collapse 类即可启用此功能。

HTML
<row class="collapse">
  <columns large="6"><img src="https://placehold.it/300x150/777777/&text=These columns touch" alt=""></columns>
  <columns large="6"><img src="https://placehold.it/300x150/999999/&text=These columns touch" alt=""></columns>
</row>
<html>

<head></head>

<body>
  <table class="row collapse">
    <tbody>
      <tr>
        <th class="small-12 large-6 columns first">
          <table>
            <tbody>
              <tr>
                <th><img src="https://placehold.it/300x150/777777/&amp;text=These columns touch" alt></th>
              </tr>
            </tbody>
          </table>
        </th>
        <th class="small-12 large-6 columns last">
          <table>
            <tbody>
              <tr>
                <th><img src="https://placehold.it/300x150/999999/&amp;text=These columns touch" alt></th>
              </tr>
            </tbody>
          </table>
        </th>
      </tr>
    </tbody>
  </table>&zwj;
</body>

</html>

演示


偏移

偏移会在列的左侧添加间距。如果行中的所有列相加不足 12,并且您想要调整它们的间距,请使用此功能。

使用 .large-offset-n 类创建偏移,其中 n 是要偏移的列数。因此,例如,.large-offset-3 会将列偏移到行宽度的 25%。可以将它看作是从左侧向外延伸列。

HTML
<row>
  <columns large="3" class="large-offset-3"><img src="https://placehold.it/150x150/999999/&text=offset column" alt=""></columns>
  <columns large="3"><img src="https://placehold.it/150x150/999999" alt=""></columns>
</row>
<html>

<head></head>

<body>
  <table class="row">
    <tbody>
      <tr>
        <th class="large-offset-3 small-12 large-3 columns first">
          <table>
            <tbody>
              <tr>
                <th><img src="https://placehold.it/150x150/999999/&amp;text=offset column" alt></th>
              </tr>
            </tbody>
          </table>
        </th>
        <th class="small-12 large-3 columns last">
          <table>
            <tbody>
              <tr>
                <th><img src="https://placehold.it/150x150/999999" alt></th>
              </tr>
            </tbody>
          </table>
        </th>
      </tr>
    </tbody>
  </table>&zwj;
</body>

</html>

演示


Sass 引用

变量

可以在项目的 settings file 中使用这些 Sass 变量自定义此组件的默认样式。

名称类型默认值描述
$grid-column-count 数字 12

电子邮件的默认列数。

$column-padding-bottom 数字 $global-padding

列底部的默认填充。

$container-radius 数字 0

容器的默认边框半径。使用 px 值