HTML Email - разрешен ли colspan? - PullRequest
17 голосов
/ 14 марта 2012

Мне было интересно, если я использую атрибут colspan в таблице HTML, которую я намерен использовать в качестве электронной почты, клиенты электронной почты (Outlook и т. Д.) Поймут, что делает colspan, поскольку я прочитал, что это может вызвать проблемы смакет?

Ответы [ 5 ]

41 голосов
/ 06 июня 2013

Colspan и rowspan полностью поддерживаются во всех основных почтовых клиентах.Они более сложны, но если вы все сделаете правильно, они станут отличным вариантом в сочетании с вложенными таблицами.

Причина, по которой у них плохая репутация, к тому же сложность заключается в том, что в Outlook требуется особая причудапринять во внимание, иначе ваш макет может сломаться.

Colspan:

В Outlook возникла проблема, при которой, если вы поместите colspan в первый ряд таблицы, ониспортит ширину последующих строк.Чтобы обойти это, вам нужно указать ширину ячейки в верхнем ряду, даже если это пустая строка.

Вот пример:

<!-- the second row in this example will not respect the specified widths in Outlook  -->
<table width="600" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="600" colspan="3" bgcolor="#757575">&nbsp;
    </td>
  </tr>
  <tr>
    <td width="200" bgcolor="#353535">&nbsp;
    </td>
    <td width="400" bgcolor="#454545">&nbsp;
    </td>
    <td width="200" bgcolor="#555555">&nbsp;
    </td>
  </tr>
</table>


<!-- here is the fix - note the empty row at the top enforces the specified width in Outlook  -->
<table width="600" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200">
    </td>
    <td width="400">
    </td>
    <td width="200">
    </td>
  </tr>
  <tr>
    <td width="600" colspan="3" bgcolor="#757575">&nbsp;
    </td>
  </tr>
  <tr>
    <td width="200" bgcolor="#353535">&nbsp;
    </td>
    <td width="400" bgcolor="#454545">&nbsp;
    </td>
    <td width="200" bgcolor="#555555">&nbsp;
    </td>
  </tr>
</table>

Rowspan:

Еще более избегается, чем colspan является rowspan.Я обнаружил, что он может отображать более последовательно, чем вложенные таблицы, в зависимости от вашей целевой аудитории.Это связано с тем, что при пересылке электронной почты из Outlook строки (особенно составные) не разделяются так сильно, как таблицы, из-за тегов <p class="msoNormal">, которые Outlook оборачивает вокруг них.Эти пробелы особенно неизбежны, если кто-то перенаправляет вашу электронную почту в Gmail .

Одна вещь, на которую следует обратить внимание, это то, что rowspan, похоже, не работает с Blackberry (что я не считаю крупным клиентом)).Как и в случае с html электронной почтой, вам нужно сыграть в игру с процентами и решить, где вы меньше всего хотите, чтобы она сломалась.

Базовый пример совместной работы colspan и rowspan:

<table width="600" border="0" cellpadding="0" cellspacing="0">
  <tr><!-- hidden row to establish widths in Outlook -->
    <td width="200">
    </td>
    <td width="200">
    </td>
    <td width="200">
    </td>
  </tr>
  <tr>
    <td width="400" height="200" colspan="2" bgcolor="#333333">...
    </td>
    <td width="200" height="400" rowspan="2" bgcolor="#444444">...
    </td>
  </tr>
  <tr>
    <td width="200" height="400" rowspan="2" bgcolor="#555555">...
    </td>
    <td width="200" height="200" bgcolor="#666666">...
    </td>
    </tr>
    <tr>
    <td width="400" height="200" colspan="2" bgcolor="#777777">...
    </td>
  </tr>
</table>

Чтобы выполнить нечто похожее на это без rowspan / colspan, вам придется разбить прямоугольные ячейки таблицы на маленькие квадраты.Представьте, если бы в верхней правой ячейке было изображение, перекрывающее заголовок , посмотрите этот вопрос на примере реального мира .Если бы вам пришлось избегать интервалов между строками и разбивать изображение логотипа по горизонтали на две сложенные ячейки, это было бы проблематично, когда Outlook выполнял эту обычную работу.Никто не любит шов в их изображении.

В html электронной почте вы всегда можете разделить изображения по вертикали без риска появления швов / разрывов, но, как правило, всегда следует избегать разделения изображения по горизонтали.Rowspan помогает избежать этого в сценариях, когда требуется перекрывающиеся изображения.

Последнее замечание - Outlook также имеет ту же проблему с spanspan, что и с colspan.Вам необходимо установить высоту строки в первом столбце, чтобы она соответствовала высоте последующих составных строк.Вот пример этого .Обратите внимание, что первая ячейка в каждой строке пуста.

3 голосов
/ 14 марта 2012

Просто подумал, ID добавить немного информации к вашему вопросу

Можно использовать Colspan, но я бы предложил против этого. Всякий раз, когда я создаю электронные письма (6 месяцев опыта), я всегда использовал вложенные таблицы. Также вы можете использовать только встроенные CSS в электронных письмах, поэтому я буду очень осторожен, используя даже поля и отступы.

Пара вещей, которые я делаю на каждое письмо.

Всегда используйте этот код на каждом изображении на вашей странице. Это исправит пробел в Gmail под картинкой.

style="display:block"

Также используйте border = "0" на любых ссылках изображения, чтобы синяя рамка не появлялась.

Надеюсь, это поможет!

2 голосов
/ 16 марта 2012

Еще один совет в дополнение к style = "display: block '- добавить высоту строки: 0 для объекта с изображением - это устраняет странную ошибку в пробелах в Outlook 2007.

Я используюЯ всегда использую colspans, но также и вкладываю таблицы, где это возможно - избегайте переходов между рядами - они кошмарные, и когда вы делаете таблицы вложений, не сходите с ума и вкладываете 4/5 или 6, я обнаруживаю, что все начинает портить.*

1 голос
/ 14 марта 2012

Да. Вся разметка HTML разрешена в большинстве, если не во всех почтовых клиентах. Когда дело доходит до сценариев, у вас есть проблема, с которой приходится бороться, поскольку сценарии просто не разрешены большинством, если не всеми почтовыми клиентами.

0 голосов
/ 09 июня 2017

Rowspans и Colspans в порядке, но я настоятельно рекомендую вам использовать вложенные таблицы.У вас будут дополнительные строки кода, однако это избавит вас от любых перерывов в работе других почтовых клиентов.

...