J'essaie de float: left
certaines tables, mais je viens de rencontrer un problème majeur, Outlook ne supporte pas float. Eh bien, alors j'ai essayé d'utiliser table align et ainsi de suite, mais sans chance. Les tables apparaissent juste, les unes sous les autres, au lieu d'être côte à côte. Quelque chose peut-on faire à ce sujet?
PS: cela fonctionne très bien sur d’autres appareils, sur Outlook uniquement, et je ne peux pas en dire autant sur chaque table, car cela casserait d’autres choses.
balisage:
<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>
Définissez vos largeurs sur chaque tableau aligné à l'aide de width = "", pas de CSS.
Un exemple qui fonctionne:
<!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>
En outre, Outlook crée un écart de 4 à 5 pixels entre les tableaux alignés. Ajouter ceci réduit à environ 1px:
<style type="text/css">
.msoFix {
mso-table-lspace:-1pt;
mso-table-rspace:-1pt;
}
</style>
Pour vous en débarrasser complètement, vous devrez ajouter des bordures à vos tables (un autre bidon Outlook bizarre).
Il suffit de mettre chaque sous -table
dans une propre td
de la table
extérieure. comme les td
s sont l'un à côté de l'autre, le table
s le sera aussi.
Lorsque vous essayez de créer du HTML-EMails, Code comme si c’était 1997 .
Si vous pouvez vivre avec le fait que les deux tables ne "répondent" pas (l'une sous l'autre) dans Outlook, cela a fonctionné pour moi:
........
<!--[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]-->
........
Utilisez des ressources en ligne telles que:
En ce qui concerne le rendu HTML, la plupart des clients de messagerie sont primitifs et détruisent de nombreux éléments HTML bien formés.
La discussion suivante peut être utile:
Quelles sont les lignes directrices pour la conception de courrier électronique HTML?
Quelques conseils de base:
Il semble que Outlook.com filtre complètement les attributs float
, mais prend en charge display: inline-block
.
Bien sûr, cela va probablement casser vos tables, car elles dépendent de display:table
, mais cela pourrait vous aider avec toutes les div
s.
Je sais que cela fait longtemps que le PO n'a pas posté cette question, mais j'espère que cela aidera tous ceux qui en ont besoin.
Si vous avez besoin d'une mise en page à 2 colonnes et que vous voulez que cela fonctionne également dans Outlook, fournissez une width
d'environ 45%
pour chaque table (pour plus de sécurité, ajoutez également un align="left"
ici). Si vous spécifiez la largeur à 50%, Outlook (qui a son propre esprit) le rendrait sous la forme d'une colonne unique.