垂直居中和拉伸图像,水平居中
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>
这是演示:
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>
我想缩放图像,使它们水平和垂直居中,并垂直拉伸直到它们垂直填满整个屏幕。可能会有白边。
图片应保持其纵横比。我添加了我想做的事情的图片。图片应根据屏幕分辨率进行调整。
从上到下,应该总有一张图片。如果您调整屏幕大小,图像应该会调整并变小,因此屏幕仍会从上到下垂直填充 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>
这是演示:
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>