CSS масштабирует изображение, чтобы оно соответствовало содержанию div, без указания исходного размера

Я хочу иметь сайт, на котором я могу загружать изображения разных размеров, которые будут отображаться в слайдере jquery. Кажется, я не могу (уменьшаю) изображение в содержащем div. Вот как я намереваюсь это сделать

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title> 
<link rel="stylesheet" type="text/css" href="Imtest.css"/>
</head>

<body>

<div id="wrapper"> 

<div id="im"><img src="Images/Scarpa2_1.jpg" /></div>

</div>  
</body>
</html>

И CSS

#wrapper {
    width: 400px;
    height: 400px;
    border: 2px black solid;
    margin: auto;
}

#im {
    max-width: 100%;
}

Я попытался установить максимальную ширину моего изображения на 100% в CSS. Но это не работает.

Ответы

Ответ 1

Вы можете использовать фоновое изображение , чтобы выполнить это;

Из MDN - Размер фона: Содержит:

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

Демо

CSS

#im {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("path/to/img");
    background-repeat: no-repeat;
    background-size: contain;
}

HTML:

<div id="wrapper">
    <div id="im">
    </div>
</div>

Ответ 2

Это старый вопрос, который я знаю, но это входит в первую пятерку для нескольких связанных поисков Google. Здесь только CSS-решение, не меняющее изображения на фоновые изображения:

width:auto;
height:auto;
max-width:MaxSize;
max-height:MaxSize;

Авто будет увеличивать (или уменьшать) ширину и высоту, чтобы занять пространство, указанное с помощью MaxSize. Он переместит любые значения по умолчанию для изображений, которые вы или браузер просмотра может иметь для изображений. Я нашел это особенно важным в Android Firefox. Пиксели или проценты работают для максимального размера. При высоте и ширине, заданной для авто, соотношение сторон исходного изображения будет сохранено.

Если вы хотите полностью заполнить пространство и не возражаете, чтобы изображение было больше его первоначального размера, измените две максимальные ширины на min-width: 100% - это позволит им полностью занять свое пространство и сохранить аспект рацион. Вы можете увидеть пример этого с фоновым изображением профиля Twitter.

Ответ 3

если вы хотите как ширину, так и высоту, вы можете попробовать

 background-size: cover !important;

но это не исказит изображение, а заполнит div.

Ответ 4

Это очень просто. Просто установите ширину img на 100%

Ответ 5

Я считаю, что это лучший способ сделать это, я пробовал, и он работает очень хорошо.

#img {
  object-fit: cover;
}

Здесь я нашел его. Удачи!

Ответ 6

На веб-странице, где мне хотелось, чтобы изображение масштабировалось с изменением размера браузера и оставалось наверху, рядом с фиксированным div, мне нужно было только использовать одну строку CSS: overflow:hidden;, и это сделало трюк, Изображение отлично масштабируется.

Что особенно приятно, так это то, что это чистый css и будет работать, даже если Javascript отключен.

CSS

#ImageContainerDiv {
  overflow: hidden;
}

HTML:

<div id="ImageContainerDiv">
  <a href="URL goes here" target="_blank">
    <img src="MapName.png" alt="Click to load map" />
  </a>
</div>

Ответ 7

Я использую это, как мелкие, так и большие изображения:

.product p.image {
text-align: center;
width: 220px;
height: 160px;
overflow: hidden;
}
.product p.image img{
max-width: 100%;
max-height: 100%;
}

Ответ 8

Некоторые из этих вещей не помогли мне... однако, это произошло. Может помочь кому-то еще в будущем. Вот CSS:

    .img-area {
     display: block;
     padding: 0px 0 0 0px;
     text-indent: 0;
     width: 100%;
     background-size: 100% 95%;
     background-repeat: no-repeat;
     background-image: url("https://yourimage.png");

    }

Ответ 9

Я использую:

объект-подгонка: обложка,
-o-object-fit: обложка;

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