CSS в электронной почте работает по-разному в новом и старом Outlook

Я пытался заставить кнопку выглядеть определенным образом в шаблоне электронной почты, но у меня возникли проблемы с шириной тега a в старом Outlook (версия 2405).

Я хочу, чтобы элемент a заполнял элемент td, чтобы все красное пространство было кликабельным.

  • Красная кнопка = элемент td
  • Синяя рамка = элемент a

В новом Outlook

В старом Outlook

  • Ширина моего элемента a не заполняет ширину элемента td.
  • По какой-то причине ссылка кликабельна слева за пределами границы, но не справа.
  • Текст на span не белый, а стандартный цвет ссылки. Это приводит к изменению цвета при нажатии

Вот мой код:

<table>
<tr>
    <td align = "center" style = "
    background: red;">
        <a href = "https://google.com" target = "_blank" style = "
        border: 3px solid blue;
        text-decoration: none;
        display: block;
        color: white;
        text-transform: uppercase;
        padding: 30px 0;
        font-weight: 700;
        font-size: 14px;
        width: 100%;
        box-sizing: border-box;
        cursor: pointer;
        letter-spacing: 0.0625em;">
            <span>
                MY BUTTON
            </span>
        </a>
    </td>
</tr>
</table>

В этот момент я медленно, но верно схожу с ума...

Я пробовал это решение, но безуспешно

Я пробовал:

  • изменение встроенного блока на блок
  • изменение ширины
  • использование !important для цвета текста

ОБНОВЛЯТЬ

Я изменил принятый ответ, чтобы он выглядел так, как я хотел:

<table>
<tr>
    <td align = "center" style = "
    background: red;">
        <a href = "https://google.com" target = "_blank" style = "
        border: 3px solid blue;
        text-decoration: none;
        display: block;
        text-transform: uppercase;
        padding: 30px 0;
        font-weight: 700;
        font-size: 14px;
        box-sizing: border-box;
        cursor: pointer;
        letter-spacing: 2px;"><!--[if mso]><i style = "mso-font-width:245%;" hidden>&emsp;&emsp;&emsp;&emsp;</i><span><![endif]-->
            <span style = "color: rgb(255,255,255) !important">
                MY BUTTON
            </span>
            <!--[if mso]></span><i style = "mso-font-width:245%;" hidden>&emsp;&emsp;&emsp;&emsp;&#8203;</i><![endif]-->
        </a>
    </td>
</tr>
</table>

Для меня это достаточно хорошо!

🤔 А знаете ли вы, что...
С помощью HTML можно создавать слайд-шоу и карусели изображений с использованием CSS и JavaScript.


1
59
1

Ответ:

Решено

Outlook Desktop Windows не поддерживает изменения отображения. Вы можете визуально изменить размер поля, используя <td>, но единственный способ увеличить размер кликабельной области — добавить строчные символы внутри <a>. Поскольку для встроенных символов нельзя установить ширину, вам нужно использовать что-то &emsp;, которое представляет собой em-пробел (не будет видимым). Затем вы можете сделать ширину 500% (максимум) и/или использовать несколько из них.

mso-text-raise можно использовать в качестве верхнего и нижнего отступа. Первая ссылка должна быть в два раза больше второй для обеспечения одинакового заполнения сверху и снизу.

<table cellpadding = "0" cellspacing = "0" width = "600" align = "center">
<tr>
    <td align = "center" style = "
    background: #ff0000;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 3px;">
        <a href = "https://www.google.com.au" style = "background-color:#ff0000; text-decoration: none; padding: 30px 0; color: #ffffff; display:block; border-radius:3px; mso-padding-alt:0;text-underline-color:#ff0000;width:100%;text-align: center;font-size:14px;font-weight:700;cursor: pointer;letter-spacing: 0.0625em;"><!--[if mso]><i style = "mso-font-width:500%;mso-text-raise:60px" hidden>&emsp;&emsp;&emsp;&emsp;</i><span style = "mso-text-raise:30px;"><![endif]-->My button<!--[if mso]></span><i style = "mso-font-width:500%;" hidden>&emsp;&emsp;&emsp;&emsp;&#8203;</i><![endif]-->
        </a>
    </td>
</tr>
</table>

Это ширина 600 пикселей. Мне удалось увеличить кликабельную область Outlook примерно до 580 пикселей. Окна Outlook для рабочего стола похожи на макет для печати (PDF), поэтому не пытайтесь сделать его адаптивным, просто определите точные пиксели (ну... дюймы и точки, он их преобразует!)