如何通过CSS制作不同高度和宽度的所有图像?

时间:2013-10-16 22:11:26

标签: html css image css3 resize

我正在尝试创建一个由产品照片组成的图像墙。不幸的是,它们都具有不同的高度和宽度。如何使用css使所有图像看起来大小相同?最好是100 x 100.

我正在考虑做一个高度和宽度为100px的div,然后是一些如何填充它。不知道怎么做。

我该如何做到这一点?

13 个答案:

答案 0 :(得分:121)

.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>

答案 1 :(得分:27)

我可以投入其中,如果你过多地扭曲图像,即将它们从一个比例中取出,它们可能看起来不对, - 一小部分就好了,但是一种方法是将图像放在一个'container'并将容器设置为100 x 100,然后将图像设置为overflow none,并将最小宽度设置为容器的最大宽度,这将裁剪您的图像,

例如

<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;
}

这样,图像将保持其容器的大小,但会在不破坏约束的情况下调整大小

答案 2 :(得分:19)

最简单的方法 - 这将保持图像大小不变,并用空格填充其他区域,这样所有图像将占用相同的指定空间,无论图像大小如何,无需拉伸

.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;

}

答案 3 :(得分:9)

您可以使用object-fit属性来调整$minmax=mysqli_query($conn,$uzklausimas); 元素的大小:

  • img按比例拉伸或缩小图像以填充容器。如有必要,图像将水平或垂直裁剪。
  • cover按比例拉伸或缩小图像以适合容器内部。
  • contain按比例缩小图像以适合容器内部。

&#13;
&#13;
scale-down
&#13;
.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;
}
&#13;
&#13;
&#13;

在上面的例子中:红色是风景,绿色是肖像,蓝色是方形图像。方格图案由16x16px正方形组成。

答案 4 :(得分:3)

对于那些使用 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;
}

答案 5 :(得分:2)

你可以这样做:

 .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%;
}

答案 6 :(得分:1)

在CSS文件中设置高度和宽度参数

.ImageStyle{

    max-height: 17vw;
    min-height: 17vw;
    max-width:17vw;
    min-width: 17vw;
    
}

答案 7 :(得分:0)

图像大小不依赖于div的高度和宽度,

在css中使用img元素

这是帮助您的css代码

div img{
         width: 100px;
         height:100px;
 }

如果你想用div设置大小

使用此

div {
    width:100px;
    height:100px;
    overflow:hidden;
}

通过此代码,您的图像以原始大小显示,但首先显示100x100px溢出将隐藏

答案 8 :(得分:0)

没有代码,这很难帮到你,但这里有一些实用的建议:

我怀疑你的“图像墙”有某种带有id或类的容器来给它样式。

例如:

<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; }

但是如果你的图像不是完全正方形,那么使用这种方法就会产生偏差。

答案 9 :(得分:0)

转到CSS文件并按如下所示调整所有图片

img {
  width:  100px;
  height: 100px;
}

答案 10 :(得分:0)

我正在为同样的问题寻找解决方案,以创建徽标列表。

我想出了一个使用了一些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。

答案 11 :(得分:0)

基于Andi Wilkinson's answer(第二个),我改进了一点,确保显示图像的中心(就像接受的答案一样):

<强> 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+ */
}

答案 12 :(得分:0)

.article-img img{ 
    height: 100%;
    width: 100%;
    position: relative;
    vertical-align: middle;
    border-style: none;
 }

您将使图像的大小与div相同,并且可以使用引导网格相应地调整div的大小