垂直居中和拉伸图像,水平居中

Center and stretch images vertically, center horizontally

我想缩放图像,使它们水平和垂直居中,并垂直拉伸直到它们垂直填满整个屏幕。可能会有白边。

图片应保持其纵横比。我添加了我想做的事情的图片。图片应根据屏幕分辨率进行调整。

从上到下,应该总有一张图片。如果您调整屏幕大小,图像应该会调整并变小,因此屏幕仍会从上到下垂直填充 3 张图像。

不知道怎么解释清楚...

这是我得到的:

<head>
<meta charset="utf-8">
<title></title>
    <style type="text/css">
    body html{
        text-align:center;
        margin: 0 auto;
    }
    .clear {
      clear: both;
    }

    #grid {
      height: 100%;
      position:absolute;
      margin: 0 auto;
    }

    .grid-element {
      width: auto;
      height: 33%;
      float: left;
    }

    .stretch {height:100%; width: auto; }
    </style>
</head>
<body>

<div id="grid">
    <div class="grid-element">
        <img src="fotos/bscasino.jpg" class="stretch" />
    </div>

    <div class="grid-element">
        <img src="fotos/frankpollet13.jpg" class="stretch"/>
    </div>

    <div class="grid-element">
        <img src="fotos/groep.jpg" class="stretch"/>
    </div>

    <div class="grid-element">
        <img src="fotos/groepbscasino.jpg"  class="stretch"/>
    </div>

    <div class="grid-element">
        <img src="fotos/kleurpotloden.jpg" class="stretch" />
    </div>

    <div class="grid-element">
        <img src="fotos/paulverrept.jpg" class="stretch" />  
    </div>

    <div class="grid-element">
        <img src="fotos/penselen.jpg" class="stretch" />  
    </div>

    <div class="grid-element">
        <img src="fotos/groep.jpg" class="stretch" />  
    </div>

    <div class="grid-element">
        <img src="fotos/groep.jpg" class="stretch" />  
    </div>

</div>
</body>

URL: http://www.voorleestoer.be/test/

这是演示:

https://jsbin.com/rafute/edit?css,output

CSS:

html, body{
  text-align : center;
  margin     : 0 auto;
  height     : 100%;
}

#grid {
  position  : absolute;
  top       : 0;
  bottom    : 0;
  left      : 0;
  right     : 0;
  margin    : 0 auto;
  font-size : 0; 
}

.grid-element {
  width    : 33.333%;
  height   : 33.333%;
  float    : left;
  position : relative;
  overflow : hidden;
}

.grid-element img{ 
  position  : absolute;
  top       : 50%;
  left      : 50%;
  width     : 150%;
  transform : translate(-50%,-50%);
}

@media (max-width: 900px) {
  #grid .grid-element img{ height:100.5%; width:auto; }
}

这将有效地呈现 3x3 个图像网格,始终 适合浏览器 window,并且图像将完美地填充网格他们可以,当然有一些裁剪,因为图像有自己的 纵横比 3x3 网格有动态的 纵横比 .

这里是如何让 3x3 网格覆盖整个高度的开始。宽度设置为 90%,但您可以根据需要设置它,使用 min/max-width 也将其限制为 bigger/smaller 屏幕。

这将为您提供均匀大小的正方形图片,较小的图片会放大以适应高度,较大的图片会缩小,并且所有图片在每一边均等地裁剪。

body, html{
  margin: 0;
  padding: 0;
  height: 100%;
}

#grid {
  height: 100%;
  width: 90%;
  margin: 0 auto;
}

.grid-row {
  height: 33%;
}

.grid-element {
  width: 30%;
  height: 94%;
  display: inline-block;
  border: 1px solid black;
  
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
}

.img1, .img4, .img7 {
  background-image: url(http://placehold.it/150x50);
}

.img2, .img5, .img8 {
  background-image: url(http://placehold.it/350x200);
}

.img3, .img6, .img9 {
  background-image: url(http://placehold.it/550x350);
}
<div id="grid">

      <div class="grid-row">

        <div class="grid-element img1">
        </div>

        <div class="grid-element img2">
        </div>

        <div class="grid-element img3">
        </div>

      </div>

      <div class="grid-row">

        <div class="grid-element img4">
        </div>

        <div class="grid-element img5">
        </div>

        <div class="grid-element img6">
        </div>

      </div>

      <div class="grid-row">

        <div class="grid-element img7">
        </div>

        <div class="grid-element img8">
        </div>

        <div class="grid-element img9">
        </div>

      </div>

    </div>