Как сделать изображение подходящим внутри элемента div, когда изображение будет больше, чем div?

У меня есть тег изображения внутри элемента div.

<div id = "myDiv">
 <img alt = "myImage" src = "some_source"/>
</div>

Изображение больше, чем div, поэтому изображение не находится внутри элемента div. Во-первых, я подумал об использовании width = x, height = y. Но поскольку я все еще разрабатываю страницу, я боюсь все время беспокоиться об этих двух измерениях.

Как сохранить изображение внутри элемента div? также, учитывая размеры элемента div?

Спасибо за помощь

Ответ 1

Отсюда: Три способа изменения размера изображений в соответствии с DIV

Используя атрибут STYLE в теге IMG, вручную задайте ширину или высоту для каждого изображения (по существу, то же самое, что и # 1).

<div id="img_box">
<img style="width: 100%;" src="path/to/horizontal_image.jpg" />
</div>
<div id="img_box">
<img style="height: 100%;" src="path/to/vertical_image.jpg" />
</div>

Надеюсь, что он решает вашу проблему.

Изменить. Лучшее решение - фактически изменить размер изображения на стороне сервера script. Масштабирование изображений в браузере обычно не очень хорошо работает.

Edit2: http://unstoppablerobotninja.com/entry/fluid-images

Ответ 2

Это сработало для меня.

 .myimg {width:200px; height:auto;}

Автоматическое изменение размеров изображений во всех браузерах.

Ответ 3

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

Я бы рекомендовал использовать свойства CSS background-size:cover и background-position: center для растягивания, обрезки и размещения изображения (используя background-image, чтобы установить образ в div).

Будет установлено, что изображение будет уменьшаться или расти, чтобы соответствовать div, а затем обрезать что-либо за пределами div. Это отличный способ обработки изображений нескольких разных форм и размеров в div.

HTML

<div class="flexbox-container">
  <div class="filled-with-image"></div>
</div>

CSS

.flexbox-container {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: flex-end;
  justify-content: center;
}

.filled-with-image {
  width: 50%;
  height:400px;
  background-image: url(http://unsplash.it/1500/1000?image=875);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  background-size: cover;
  -o-background-size: cover;
  background-position: center bottom;
}

Смотрите код здесь

Ответ 4

Ребята, потратив слишком много времени на поиск более простого способа сделать это, я совмещаю информацию из исследования, чтобы сделать это следующим образом: (просто используя функцию getimagesize() - если высота больше ширины, эхо тег изображения со стилем, имеющим высоту 100%, повторяет один и тот же тег изображения, но со стилем, имеющим ширину 100%);

$image = "path to your image";
$img_size = getimagesize($image);

if ($img_size[0] < $img_size[1]){echo " < img src= '$image'  style='height:100%;'>";}
else {echo "< img src= '$image'  style='width:100%;'>";}