Как я могу сделать все изображения разной высоты и ширины одинаковыми с помощью CSS?
Я пытаюсь создать стену изображения, состоящую из фотографий продукта. К сожалению, все они разной высоты и ширины. Как я могу использовать css, чтобы все изображения выглядели одинаково? желательно 100 х 100.
Я думал о том, чтобы сделать div, который имеет высоту и ширину 100px, а затем некоторые, как заполнить его. Не знаю, как это сделать.
Как я могу это сделать?
13 ответов
.img {
position: relative;
float: left;
width: 100px;
height: 100px;
background-position: 50% 50%;
background-repeat: no-repeat;
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 х 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>
в приведенном выше примере: красный пейзаж, портрет зеленый и синий квадратный образ. Клетчатый узор состоит из квадратов 16x16px.
для тех, кто использует загрузки и не хотеть потерять responsivness как раз не установите ширину контейнера. Следующий код основан на gillytech пост.
.формат HTML<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 -->
стиль.в CSS
/*images with the same width*/
.crop {
height: 300px;
/*width: 400px;*/
overflow: hidden;
}
.crop img {
height: auto;
width: 100%;
}
или стиль.в 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%;
}
задайте параметры высоты и ширины в файле CSS
.ImageStyle{
max-height: 17vw;
min-height: 17vw;
max-width:17vw;
min-width: 17vw;
}
размер изображения не зависит от высоты и ширины div,
используйте элемент img в css
вот код CSS, который поможет вам
div img{
width: 100px;
height:100px;
}
Если вы хотите установить размер div
использовать
div {
width:100px;
height:100px;
overflow:hidden;
}
по этому коду ваше изображение отображается в исходном размере, но показывает первое переполнение 100x100px скроет
без кода это трудно помочь вам, но вот некоторые практические советы для вас:
Я подозреваю, что ваша "стена изображений" имеет какой-то контейнер с идентификатором или классом, чтобы дать ему стили.
например:
<body>
<div id="maincontainer">
<div id="header"></div>
<div id="content">
<div id="imagewall">
<img src"img.jpg">
<!-- code continues -->
Styling размер на всех изображениях для вашей стены изображения, пока не влияющ на другие изображения, как вы Логос, etc. легко, если ваш код настроен аналогично приведенному выше.
#imagewall img {
width: 100px;
height: 100px; }
но если ваши снимки не идеально квадратные они используйте этот метод.
перейдите в файл CSS и измените размер всех изображений следующим образом
img {
width: 100px;
height: 100px;
}
Я искал решение этой же проблемы, чтобы создать список логотипов.
Я придумал это решение, которое использует немного flexbox, который работает для нас, так как мы не беспокоимся о старых браузерах.
в этом примере предполагается коробка 100x100px, но я уверен, что размер может быть гибким / отзывчивым.
.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. вам может потребоваться добавить некоторые префиксы или использовать autoprefixer.
на основе ответ Энди Уилкинсона (второй), я немного улучшился, убедитесь, что центр изображения показан (как и принятый ответ):
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+ */
}
.img {
position: relative;
float: left;
width: 100px;
height: 100px;
background-position: 50% 50%;
background-repeat: no-repeat;
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>