Задать вопрос

Как сделать тянущиеся изображения в HTML?

Помогите сверстать HTML страницу.
Есть статья, которая содержит изображения. Статья может просматриваться как на большом мониторе, так и на телефоне с разрешением 800x480.
Чтобы статья нормально выглядела на большом мониторе, всю статью заключаю в div с максимальной шириной 800px.
Но изображения могут быть шире 800px и при возможности должны отображаться в своём полном размере.

Требования более формально:
  1. Если статья просматривается на большом экране, изображения должны быть своей реальной ширины, превышающей 800px.
  2. Если окно браузера уменьшается до ширины менее 800px или статья просматривается на телефоне, то изображения должны масштабироваться по ширине экрана.
  3. Статья отправляется в виде электронного письма, поэтому нельзя использовать скрипты и весь CSS должен быть встроен в HTML.


Как этого добиться? Можно считать, что известны размеры изображений, а значит их можно указать в max-width и max-height.

Вот шаблон статьи, который надо модифицировать:
<div style="max-width: 800px;">
  <p>
    Какой-то текст. Какой-то текст.
  </p>

  <p id="p_img">
    <img id="wide_img" src="/img.jpg" alt="Изображение размером 1024x768"/>
  </p>

  <p>
    Какой-то текст. Какой-то текст.
  </p>
</div>


Для решения поставленной задачи разрешено добавлять стили к #p_img и #wide_img и вставлять дополнительные теги вокруг #wide_img.

Пробовал добавить в #p_img style=«width: 100%» и в #wide_img style=«width: 100%;», но в этом случае ширина изображения не превышает 800px, что не удовлетворяет требованию 1.
  • Вопрос задан
  • 12883 просмотра
Подписаться 7 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 3
dudeonthehorse
@dudeonthehorse
Email Developer
Что ж вы сразу не сказали что письмо верстаете? :)
Это категорически меняет вопрос.

Реализовать вашу задачу в принципе невозможно для всех почтовых клиентов и веб-интерфейсов.
Как аргумент: свойство max-width работает чуть не только в gmail. Так что мой совет — проектировать дизайн макет, в котром не будет резиновых картинок.

А так же там не должно быть фоновых изображений, ибо работают они так же далеко не везде.

habrahabr.ru/post/112163/
habrahabr.ru/post/113709/
habrahabr.ru/post/114119/
habrahabr.ru/post/114234/
habrahabr.ru/company/unisender/blog/115962/
habrahabr.ru/post/117613/
habrahabr.ru/post/127266/
habrahabr.ru/post/127403/
habrahabr.ru/post/137978/

Приятного чтения. Все посвящено html письмам.
Ответ написан
ertaquo
@ertaquo
А если написать так?
#wide_img
{
  max-width: 100%;
}
Ответ написан
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Сталкивался с похожей проблемой для стрелочек в карусели в зависимости от разрешения экрана.
Справился с помощью jQuery.

Вот код, но дописать Вам надо будет самим, легко поймете и справитесь:

<script language="JavaScript">
   $(document).ready(function(){ 
	
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();



    if($(window).width()<900) {
       
    }

$(window).resize(function() {
 if($(window).width()<900) {
       показываем маленькую картинку
    }

 if($(window).width()>=900) {
     показываем большую картинку
    }

});
});

</script> 
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы