Я пытаюсь создать имиджевую стену, состоящую из фотографий продуктов. К сожалению, все они разной высоты и ширины. Как я могу использовать CSS, чтобы все изображения выглядели одинакового размера? предпочтительно 100 х 100.
Я думал о создании div с высотой и шириной 100 пикселей, а затем о том, как его заполнить. НЕ знаю, как это сделать.
Как я могу этого добиться?
overflow:none
div , затем вставьте изображения с помощью и центрируйте изображение по горизонтали / вертикали внутри div.overflow: hidden;
. :)overflow:none
в css. Дажеoverflow:hidden
проблему не решит.Ответы:
Обновленный ответ (нет поддержки IE11)
img { float: left; width: 100px; height: 100px; object-fit: cover; }
<img src="http://i.imgur.com/tI5jq2c.jpg"> <img src="http://i.imgur.com/37w80TG.jpg"> <img src="http://i.imgur.com/B1MCOtx.jpg">
Оригинальный ответ
.img { float: left; width: 100px; height: 100px; background-size: cover; }
<div class="img" style="background-image:url('http://i.imgur.com/tI5jq2c.jpg');"></div> <div class="img" style="background-image:url('http://i.imgur.com/37w80TG.jpg');"></div> <div class="img" style="background-image:url('http://i.imgur.com/B1MCOtx.jpg');"></div>
источник
Могу я просто добавить это, если вы слишком сильно искажаете свои изображения, то есть убираете их из соотношения, они могут выглядеть неправильно, - небольшое количество нормально, но один из способов сделать это - поместить изображения в `` контейнер '' и установите для контейнера значение 100 x 100, затем установите для изображения значение «Нет переполнения» и установите для минимальной ширины максимальную ширину контейнера, это обрежет часть вашего изображения,
например
<h4>Products</h4> <ul class="products"> <li class="crop"> <img src="ipod.jpg" alt="iPod" /> </li> </ul> .crop { height: 300px; width: 400px; overflow: hidden; } .crop img { height: auto; width: 400px; }
Таким образом, изображение останется размером с контейнер, но изменится без нарушения ограничений.
источник
Самый простой способ - это сохранит размер изображения таким, какой он есть, и заполнит другую область пространством, таким образом, все изображения будут занимать одно и то же указанное пространство независимо от размера изображения без растяжения
.img{ width:100px; height:100px; /*Scale down will take the necessary specified space that is 100px x 100px without stretching the image*/ object-fit:scale-down; }
источник
Вы можете использовать
object-fit
свойство для изменения размераimg
элементов:cover
растягивает или сжимает изображение пропорционально, чтобы заполнить контейнер. Изображение обрезается по горизонтали или по вертикали, если необходимо.contain
растягивает или сжимает изображение пропорционально, чтобы оно поместилось внутри контейнера.scale-down
пропорционально сжимает изображение, чтобы оно поместилось внутри контейнера..example { margin: 1em 0; text-align: center; } .example img { width: 30vw; height: 30vw; } .example-cover img { object-fit: cover; } .example-contain img { object-fit: contain; }
<div class="example example-cover"> <img src="https://i.stack.imgur.com/B0EAo.png"> <img src="https://i.stack.imgur.com/iYkNH.png"> <img src="https://i.stack.imgur.com/gne9N.png"> </div> <div class="example example-contain"> <img src="https://i.stack.imgur.com/B0EAo.png"> <img src="https://i.stack.imgur.com/iYkNH.png"> <img src="https://i.stack.imgur.com/gne9N.png"> </div>
В приведенном выше примере: красный - пейзаж, зеленый - портрет, синий - квадратное изображение. Клетчатый узор состоит из квадратов размером 16x16 пикселей.
источник
Для тех, кто использует Bootstrap и не хочет терять отзывчивость, просто не устанавливайте ширину контейнера. Следующий код основан на публикации gillytech .
index.hmtl
<div id="image_preview" class="row"> <div class='crop col-xs-12 col-sm-6 col-md-6 '> <img class="col-xs-12 col-sm-6 col-md-6" id="preview0" src='img/preview_default.jpg'/> </div> <div class="col-xs-12 col-sm-6 col-md-6"> more stuff </div> </div> <!-- end image preview -->
style.css
/*images with the same width*/ .crop { height: 300px; /*width: 400px;*/ overflow: hidden; } .crop img { height: auto; width: 100%; }
ИЛИ style.css
/*images with the same height*/ .crop { height: 300px; /*width: 400px;*/ overflow: hidden; } .crop img { height: 100%; width: auto; }
источник
Сделать это можно так:
.container{ position: relative; width: 100px; height: 100px; overflow: hidden; z-index: 1; } img{ left: 50%; position: absolute; top: 50%; -ms-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); transform: translate(-50%, -50%); max-width: 100%; }
источник
Я искал решение той же проблемы, чтобы создать список логотипов.
Я придумал это решение, в котором используется немного flexbox, который работает для нас, поскольку мы не беспокоимся о старых браузерах.
В этом примере предполагается поле размером 100x100 пикселей, но я уверен, что размер может быть гибким / отзывчивым.
.img__container { display: flex; padding: 15px 12px; box-sizing: border-box; width: 100px; height: 100px; img { margin: auto; max-width: 100%; max-height: 100%; } }
ps: может потребоваться добавить несколько префиксов или использовать автопрефиксатор.
источник
Основываясь на ответе Энди Уилкинсона (второй), я немного улучшился, убедитесь, что центр изображения показан (как и в принятом ответе):
HTML:
<div class="crop"> <img src="img.png"> </div>
CSS:
.crop{ height: 150px; width: 200px; overflow: hidden; } .crop img{ width: 100%; height: auto; position: relative; top: 50%; -webkit-transform: translateY(-50%); /* Ch <36, Saf 5.1+, iOS < 9.2, An =<4.4.4 */ -ms-transform: translateY(-50%); /* IE 9 */ transform: translateY(-50%); /* IE 10, Fx 16+, Op 12.1+ */ }
источник
Установите параметры высоты и ширины в файле CSS
.ImageStyle{ max-height: 17vw; min-height: 17vw; max-width:17vw; min-width: 17vw; }
источник
.article-img img{ height: 100%; width: 100%; position: relative; vertical-align: middle; border-style: none; }
Вы сделаете размер изображений таким же, как div, и вы можете использовать сетку начальной загрузки, чтобы соответственно управлять размером div.
источник
Размер изображения не зависит от высоты и ширины div,
использовать элемент img в css
Вот код css, который вам поможет
div img{ width: 100px; height:100px; }
если вы хотите установить размер по div
использовать это
div { width:100px; height:100px; overflow:hidden; }
с помощью этого кода ваше изображение будет отображаться в исходном размере, но при отображении первого переполнения 100x100 пикселей скроется
источник
Без кода вам трудно помочь, но вот несколько практических советов для вас:
Я подозреваю, что ваша «стена изображений» имеет какой-то контейнер с идентификатором или классом для придания ему стилей.
например:
<body> <div id="maincontainer"> <div id="header"></div> <div id="content"> <div id="imagewall"> <img src"img.jpg"> <!-- code continues -->
Изменить размер всех изображений для вашей стены изображений, не затрагивая при этом другие изображения, такие как ваш логотип и т. Д., Легко, если ваш код настроен аналогично приведенному выше.
#imagewall img { width: 100px; height: 100px; }
Но если ваши изображения не идеально квадратные, они будут перекошены с помощью этого метода.
источник
Перейдите в свой файл CSS и измените размер всех изображений следующим образом
img { width: 100px; height: 100px; }
источник