Эквивалент плавать в Outlook
Я пытаюсь float: left
некоторые таблицы, но просто столкнулся с серьезной проблемой, Outlook не поддерживает float. Ну, тогда я попытался использовать выравнивание таблицы и т.д., Но без везения. Таблицы просто появляются друг под другом, а не рядом друг с другом. Что-нибудь можно сделать по этому поводу?
PS: он работает на других устройствах просто отлично, его единственный Outlook, и я не могу дать каждой таблице td, так как это сломает некоторые другие вещи.
Разметка:
<table class="products">
<tr>
<td align="left" class="test">
<!-- Product 1 -->
<table align="center">
<tr>
<td class="product">
<a href="#">
<img src="#"/>
</a>
</td>
</tr>
</table>
<!-- Product 2 -->
<table align="center">
<tr>
<td class="product">
<a href="#">
<img src="#"/>
</a>
</td>
</tr>
</table>
<!-- Product 3 -->
<table align="center">
<tr>
<td class="product">
<a href="#">
<img src="#"/>
</a>
</td>
</tr>
</table>
<span class="clear"></span>
</td>
</tr>
</table>
Ответы
Ответ 1
Установите ширину в каждой выровненной таблице с помощью width = "", а не CSS.
Пример, который работает:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title>
<style type="text/css">
table td { border-collapse: collapse; }
.msoFix { mso-table-lspace:-1pt; mso-table-rspace:-1pt; }
</style>
</head>
<body style="margin: 0px; padding: 0px; background-color: #FFFFFF;" bgcolor="#FFFFFF">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<div style="max-width:640px !important;">
<table class="msoFix" width="320" cellpadding="0" cellspacing="0" align="left" bgcolor="#CCCCCC">
<tr>
<td width="15" bgcolor="454545"> </td>
<td width="290" bgcolor="454545" align="left" style="padding: 0px;"> <br>Table 1<br>...<br>
</td>
<td width="15" bgcolor="454545"> </td>
</tr>
</table>
<table class="msoFix" width="320" cellpadding="0" cellspacing="0" align="left" bgcolor="#EEEEEE">
<tr>
<td width="15" bgcolor="959595"> </td>
<td width="290" bgcolor="959595" align="left" style="padding: 0px;"> <br>Table 2<br>...<br>
</td>
<td width="15" bgcolor="959595"> </td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</body></html>
Кроме того, Outlook выделяет промежуток в 4-5 пикселей между выравниваемыми таблицами. Добавление этого обрезает до примерно 1px:
<style type="text/css">
.msoFix {
mso-table-lspace:-1pt;
mso-table-rspace:-1pt;
}
</style>
Чтобы полностью избавиться от него, вам нужно будет добавить границы к вашим таблицам (другой взломать Outlook quirk).
Ответ 2
Просто поместите каждый sub table
в собственный td
внешнего table
. поскольку td
являются, кроме того, table
тоже.
При попытке создания HTML-EMails Код, например, его 1997.
Ответ 3
Используйте некоторые онлайн-ресурсы, такие как:
Как писать HTML-сообщения HTML
Когда дело доходит до рендеринга HTML, большинство почтовых клиентов являются примитивными и разбивают много хорошо сформированных HTML-элементов.
Может быть полезно следующее обсуждение:
Какие существуют рекомендации для дизайна электронной почты HTML?
Некоторые основные советы:
- Используйте таблицы для компоновки.
- Установите максимальную ширину таблицы шириной 600 пикселей.
- Не пытайтесь использовать JavaScript или Flash.
- Не используйте CSS в теге стиля, поскольку некоторые почтовые клиенты его отбрасывают.
- Используйте только встроенные стили CSS.
Ответ 4
Если вы можете жить с тем, что две таблицы не "отвечают" (одна под друг друга) в Outlook, это сработало для меня:
........
<!--[if gte mso 9]>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<![endif]-->
<!-- table 1 goes here -->
<!--[if gte mso 9]>
</td>
<td>
<![endif]-->
<!-- table 12 goes here -->
<!--[if gte mso 9]>
</td>
</tr>
</table>
<![endif]-->
........
Ответ 5
Кажется, Outlook.com полностью отключает атрибуты float
, но поддерживает display: inline-block
.
Конечно, это, скорее всего, сломает ваши таблицы, поскольку они зависят от display:table
, но это может помочь вам с любыми div
s.