2014-10-21 1 views
0

Я пытаюсь настроить электронную почту моей компании, чтобы быть более мобильным. И, к сожалению, потому что это основано на адресах электронной почты, мне приходится создавать `em, как в 1999 году: таблицы и фрагменты изображений, в основном.Отзывчивое масштабирование изображений в ячейках таблицы вызывает пробелы в Chrome

У меня есть таблицы, которые заданы для определенной ширины, без определенной высоты. Не более одной строки в таблице и обычно 2-3 столбца. Одно изображение на ячейку таблицы. В настоящее время я не определяю размеры ячеек таблицы или изображений.

Вот мой новый отзывчивым код, я работаю над:

@media (max-width: 670px) { 
    body { 
     background-color: red !important; /* for testing */ 
    } 
    table { 
     width: 100% !important; 
     height: auto !important; 
    } 
    table img { 
     width: 100% !important; 
     height: auto !important; 
    } 
} 
@media (max-width: 480px) { 
    body { 
     background-color: blue !important; /* for testing */ 
    } 
} 

http://codepen.io/BevansDesign/pen/CnAfB

Как вы можете видеть на моей странице Codepen, если уменьшить ширину окна, графика будет сокращаться вниз соответственно. Однако в Chrome у меня много разбросов между изображениями (зеленые линии), из-за того, что масштабирование на основе пикселей немного странно. (Отлично работает в FF, конечно, не работает в IE8, и я еще не тестировал его ни на что еще.)

Кто-нибудь знает, как я могу избавиться от этих пробелов? Я попытался установить высоту изображения на 100%, но это просто оставляет изображения на их первоначальной высоте и сжимает их по горизонтали.

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

Благодарим за помощь!

ответ

1

Это может помочь вам

source

Вариант 1.) Добавить стиль = "дисплей: блок" к изображению

<img src="http://www.test.com/test.jpg" style="display:block"> 

Варианты 2.) Если высота изображения более 16 пикселей, установите атрибут «align» в изображении на любое из следующих значений: абс. середины, середины, слева, справа, аббрете, текста и вершины

<img src="http://www.test.com/test.jpg" align="absbottom"> 

Вариант 3.) Поместите изображение в блок элемента со стилем = «высоту строки: 10px» (или ниже) Пример:

<div style="line-height:10px"><img src="http://www.test.com/test.jpg"></div> 

Вариант 4.) Поместите изображение в блочный элемент со стилем = "размер шрифта: 2px" (или ниже)

<div style="font-size:2px"><img src="http://www.test.com/test.jpg"></div> 

Вариант 5.) Добавить стиль = "плавать: левый" или стиль = "плавать: право"

<img src="http://www.test.com/test.jpg" style="float:left"> 
+0

Спасибо, я попробовал несколько из тех, кто в прошлом, когда лишние пробелы выскочили в сообщениях электронной почты (именно поэтому у меня есть все, что в таблице однорядной, с каждым изображением в своей собственной ячейке). Однако эта проблема возникает только при попытке масштабирования изображений. – BevansDesign

+1

Если я масштабирую столы до 57% (просто чтобы выбрать номер в случайном порядке), это делает ширину стола шириной 650 пикселей шириной 370,5 пикселей, хотя Chrome округляет ее до ближайшего пикселя. Таким образом, 3 изображения (200x344, 213x344 и 217x344) заканчиваются разной высотой (114x196, 121x195, 124x197). Поэтому я ищу способ рассказать браузеру о масштабировании их всех на высоту таблицы. – BevansDesign

0

Лучшее решение, которое я когда-либо встречал в этой проблеме, - использовать фоновое изображение с кусочками, сохраненными как сетка прозрачных GIF. Разрывы все еще появляются, но они не видны.

В моем примере ниже первая таблица использует обычные срезы, и вы увидите узкие промежутки в 1 или 2 пикселя, появляющиеся при масштабировании в браузере. Хром кажется худшим, но это происходит и в других браузерах.

Во второй таблице используется мой фон и техника GIF. Реагирующие стили переводят изображение в приветственную версию с поддержкой Retina.

<!DOCTYPE html> 
<html> 
<head> 
<title>Slices</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

    <style type="text/css"> 
     body, table, td, a { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } 
     table, td { mso-table-lspace: 0pt; mso-table-rspace: 0pt; } 
     img { -ms-interpolation-mode: bicubic; } 
     img { border: 0; line-height: 100%; outline: none; text-decoration: none; } 
     table { border-collapse: collapse !important; } 
     body { height: 100% !important; margin: 0 !important; padding: 0 !important; width: 100% !important; } 


    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 
     .switch-background { 
     background-image: url(http://www.interactiveemail.co.uk/DB/slices/full_image_hi.jpg) !important; 
     background-repeat: no-repeat !important; 
     background-size: 100% !important; 
     } 
} 


     @media screen and (max-width: 640px) { 
      table { width: 100% !important; max-width: 414px !important; } 
      table img { width: 100% !important; height: auto !important; } 
     .switch-background { 
     background-image: url(http://www.interactiveemail.co.uk/DB/slices/full_image_hi.jpg) !important; 
     background-repeat: no-repeat !important; 
     background-size: 100% !important; 
     } 



     div[style*="margin: 16px 0;"] { margin: 0 !important; } 
    </style> 

</head> 

<body style="background-color: #ffffff; margin: 0 !important; padding: 0 !important;"> 

<!-- 100% table start --> 
<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
     <td align="center" bgcolor="#ffffff"> 

      <!-- Regular slices --> 
      <table width="600" border="0" cellpadding="0" cellspacing="0" align="center"> 
       <tr> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_01.jpg" alt="Slice 1" width="201" height="106" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_02.jpg" alt="Slice 2" width="266" height="106" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_03.jpg" alt="Slice 3" width="133" height="106" style="display: block;"></td> 
       </tr> 
       <tr> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_04.jpg" alt="Slice 4" width="201" height="172" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_05.jpg" alt="Slice 5" width="266" height="172" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_06.jpg" alt="Slice 6" width="133" height="172" style="display: block;"></td> 
       </tr> 
       <tr> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_07.jpg" alt="Slice 7" width="201" height="123" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_08.jpg" alt="Slice 8" width="266" height="123" style="display: block;"></td> 
        <td><img src="http://www.interactiveemail.co.uk/DB/slices/slice_09.jpg" alt="Slice 9" width="133" height="123" style="display: block;"></td> 
       </tr> 
      </table>    

      <br><br> 

      <!-- Transparent slices --> 
      <table width="600" border="0" cellpadding="0" cellspacing="0" align="center" background="http://www.interactiveemail.co.uk/DB/slices/full_image_lo.jpg" class="switch-background"> 
       <tr> 
       <td><!--[if gte mso 9]> 
        <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:600px;height:401px;"> 
        <v:fill type="tile" src="http://www.interactiveemail.co.uk/DB/slices/full_image_lo.jpg" color="#ffffff" /> 
        <v:textbox inset="0,0,0,0"> 
        <![endif]--> 
        <div><table width="600" border="0" cellspacing="0" cellpadding="0"> 
         <tr> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_01.gif" alt="Slice 1" width="201" height="106" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_02.gif" alt="Slice 2" width="266" height="106" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_03.gif" alt="Slice 3" width="133" height="106" style="display: block;"></td> 
         </tr> 
         <tr> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_04.gif" alt="Slice 4" width="201" height="172" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_05.gif" alt="Slice 5" width="266" height="172" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_06.gif" alt="Slice 6" width="133" height="172" style="display: block;"></td> 
         </tr> 
         <tr> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_07.gif" alt="Slice 7" width="201" height="123" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_08.gif" alt="Slice 8" width="266" height="123" style="display: block;"></td> 
         <td><img src="http://www.interactiveemail.co.uk/DB/slices/blank_slice_09.gif" alt="Slice 9" width="133" height="123" style="display: block;"></td> 
         </tr>  
        </table></div> 
        <!--[if gte mso 9]> 
        </v:textbox> 
        </v:rect> 
        <![endif]--> 
       </td> 
      </tr> 
      </table>  

     </td> 
    </tr> 
</table> 
<!-- 100% table end --> 

</body> 
</html> 
Смежные вопросы