Есть ли эквивалент CSS max-width, который работает в HTML-письмах?
Я пытаюсь создать HTML-письмо, которое будет отображаться правильно во всех широко используемых почтовых клиентах. Я обертываю всю электронную почту в таблицу, и я хотел бы, чтобы она имела ширину до 98% от доступной ширины, но не более 800 пикселей. Вроде этого:
<table style="width:98%; max-width:800px;">
но я не делаю так, потому что по этому Outlook 2007 не поддерживает свойство CSS width.
вместо этого я делаю это:
<table width="98%">
есть любой способ также установить максимальную ширину, не полагаясь на CSS?
5 ответов:
Да, есть способ, чтобы эмулировать
max-widthиспользование таблицы, что дает вам как отзывчивый, так и удобный для Outlook макет. Более того, это решение не требует условных комментариев.Предположим, вы хотите, эквивалентной сосредоточенной
divСmax-widthof350px. Вы создаете таблицу, устанавливаете ширину в100%. Таблица состоит из трех ячеек подряд. Установите ширину центраTDдо350(используя HTMLwidthатрибут, а не CSS), и там вы идете.если вы хотите, чтобы ваш контент был выровнен по левому краю, а не по центру, просто оставьте первую пустую ячейку.
пример:
<table border="0" cellspacing="0" width="100%"> <tr> <td></td> <td width="350">The width of this cell should be a maximum of 350 pixels, but shrink to widths less than 350 pixels. </td> <td></td> </tr> </table>в jsfiddle я даю таблице границу, чтобы вы могли видеть, что происходит, но, очевидно, вы не хотели бы этого в реальной жизни:
есть трюк, который вы можете сделать для Outlook 2007 с помощью условных комментариев html.
Приведенный ниже код гарантирует, что таблица Outlook имеет ширину 800px, а не максимальную ширину, но она работает лучше, чем позволяет таблице охватывать все окно.<!--[if gte mso 9]> <style> #tableForOutlook { width:800px; } </style> <![endif]--> <table style="width:98%;max-width:800px"> <!--[if gte mso 9]> <table id="tableForOutlook"><tr><td> <![endif]--> <tr><td> [Your Content Goes Here] </td></tr> <!--[if gte mso 9]> </td></tr></table> <![endif]--> <table>
короткий ответ: нет.
длинный ответ:
фиксированные форматы лучше работают для HTML-писем. По моему опыту, вам лучше всего притворяться, что это 1999 год, когда дело доходит до HTML-писем. Будьте явными и используйте атрибуты HTML (width="650"), где это возможно в ваших определениях таблиц, а не CSS (style="width:650px"). Используйте фиксированную ширину, без процентов. Таблица шириной 650 пикселей является безопасной ставкой. Используйте встроенный CSS для установки свойств текста.
дело не в этом то, что работает в "HTML-письмах", а скорее множество почтовых клиентов и их ограниченная (а иногда и намеренно в случае Gmail, Hotmail и т. д.) способность отображать HTML.
немного поздно на вечеринку, но это будет сделано. Я оставил пример на 600, так как это то, что большинство людей будет использовать:
похоже на пример шея, за исключением этого также включает в себя max-width для работы с остальными клиентами, которые имеют поддержку, а также второй способ предотвращения расширения (media query), который необходим для Outlook '11.
в голову:
<style type="text/css"> @media only screen and (min-width: 600px) { .maxW { width:600px !important; } } </style>в теле:
<!--[if (gte mso 9)|(IE)]><table width="600" align="center" cellpadding="0" cellspacing="0" border="0"><tr><td><![endif]--> <div class="maxW" style="max-width:600px;"> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td> main content here </td> </tr> </table> </div> <!--[if (gte mso 9)|(IE)]></td></tr></table><![endif]-->вот еще один пример из этого в использовании:отзывчивые письма с подтверждением заказа для мобильных устройств?
Это решение, которое сработало для меня
https://gist.github.com/elidickinson/5525752#gistcomment-1649300, Спасибо @philipp-klinz
<table cellpadding="0" cellspacing="0" border="0" style="padding:0px;margin:0px;width:100%;"> <tr><td colspan="3" style="padding:0px;margin:0px;font-size:20px;height:20px;" height="20"> </td></tr> <tr> <td style="padding:0px;margin:0px;"> </td> <td style="padding:0px;margin:0px;" width="560"><!-- max width goes here --> <!-- PLACE CONTENT HERE --> </td> <td style="padding:0px;margin:0px;"> </td> </tr> <tr><td colspan="3" style="padding:0px;margin:0px;font-size:20px;height:20px;" height="20"> </td></tr> </table>
Comments