Проблема с электронной почтой в Outlook - PullRequest
0 голосов
/ 08 ноября 2018

У меня проблема при кодировании блока в Outlook.

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

Вот мой код, который отлично работает в браузере, однако при предварительном просмотре в Outlook он отображает как настольную, так и мобильную версию поверх друг друга при предварительном просмотре в более крупной (настольной) версии:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <meta name="format-detection" content="telephone=no">
    <style type="text/css">

    @media screen and (max-width: 599px) {
        .mobile-hide {
            display:none !important;
            visibility:hidden !important;
            height:0 !important;
            overflow:hidden !important;
            font-size:0 !important;
            line-height:0 !important;
            padding:0;
            max-height:0;
            width:0 !important;
        }
        .mobile-show {
            display: block!important;
        }

    }

@media screen and (min-width: 600px) {

.desktop-hide{

    display:none;

    }

}

</style>
</head>



<body>

<table border="0" cellpadding="0" cellspacing="0">


                                     <tr class="mobile-hide">
                                        <td width="10">&nbsp;</td>
                                        <td colspan="4" align="center">
                                            <p style="font-family:Verdana,sans-serif;font-size:20px;color:#393939;text-align:left;margin-bottom:0;margin-top:0;line-height:20px;font-weight: bold;">
    <span style="font-size:14px;color:white;padding:10px;background-color:lightblue;" bgcolor="lightblue">Test</span><br><br>
                                               <img style = "display: block!important;margin: 0 auto;" src="https://via.placeholder.com/50x50">
                                            </p>
                                        </td>
                                        <td colspan="2" align="left" style="padding:20px;">
                                            <p style="font-family:Verdana,sans-serif; color:#393939;text-align:left;margin-bottom:0;margin-top:0;line-height:20px;font-weight: bold;padding-left: :10px;">
                                                <h2>Test Your Page</h2>
                                                This is some test content to demonstrate the structure of how the page might be built. It is a test paragraph with a bit of content displayed and a smail bit of code attached.
                                            </p>
                                        </td>
                                        <td width="30" style="padding:10px;"><b>Right</b>
                                        </td>
                                    </tr>


                                    <tr class = "desktop-hide">

                                        <td colspan="8">
                                            <table class="mobile-width" width="100%" border="0" cellpadding="0" cellspacing="0">
                                                <tr><td colspan ="2">Test Your Page <span style = "padding-left:30px;">Right</span></td></tr>
                                                <tr><td><img style = "display: block!important;margin: 0 auto;" src="https://via.placeholder.com/50x50"></td><td>This is some test content to demonstrate the structure of how the page might be built. It is a test paragraph with a bit of content displayed and a smail bit of code attached.</td></tr>
                                            </table>
                                        </td>
                                    </tr>



</table>



</body>
</html>

Было бы замечательно, если бы кто-нибудь мог помочь мне заставить это работать так, чтобы при предварительном просмотре в Outlook показывался только один, в зависимости от того, показывает ли настольное или мобильное представление

1 Ответ

0 голосов
/ 09 ноября 2018

Я все еще думаю, что пытаться использовать плохо поддерживаемую технологию - глупость, но следующее может сработать.

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

/*Go Mobile First - This will happen if media queries are supported or not*/
  .mobile-hide {
    display: none;   
  }


/*This will work where supported and be ignored where not
  I.E. Outlook will always display the mobile version
*/
@media screen and (min-width: 600px) {
  .desktop-hide {
    display: none;
  }
  
  .mobile-hide {
    display: table-row;   
  }
}
<table border="0" cellpadding="0" cellspacing="0">
  <tr class="mobile-hide">
    <td width="10">&nbsp;
    </td>
    <td colspan="4" align="center">
      <p style="font-family:Verdana,sans-serif;font-size:20px;color:#393939;text-align:left;margin-bottom:0;margin-top:0;line-height:20px;font-weight: bold;"><span style="font-size:14px;color:white;padding:10px;background-color:lightblue;" bgcolor="lightblue">Test</span><br><br><img style="display: block!important;margin: 0 auto;" src="https://via.placeholder.com/50x50"></p>
    </td>
    <td colspan="2" align="left" style="padding:20px;">
      <p style="font-family:Verdana,sans-serif; color:#393939;text-align:left;margin-bottom:0;margin-top:0;line-height:20px;font-weight: bold;padding-left: :10px;">
        <h2>Test Your Page</h2>This is some test content to demonstrate the structure of how the page might be built. It is a test paragraph with a bit of content displayed and a smail bit of code attached. </p>
    </td>
    <td width="30" style="padding:10px;"><b>Right</b></td>
  </tr>
  <tr class="desktop-hide">
    <td colspan="8">
      <table class="mobile-width" width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td colspan="2">Test Your Page <span style="padding-left:30px;">Right</span></td>
        </tr>
        <tr>
          <td><img style="display: block!important;margin: 0 auto;" src="https://via.placeholder.com/50x50"></td>
          <td>This is some test content to demonstrate the structure of how the page might be built. It is a test paragraph with a bit of content displayed and a smail bit of code attached.</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

Также избегайте использования !important, в этом случае применение медиа-запросов будет еще сложнее.

...