Dan*_*Dan 8 html css flexbox object-fit
努力使事情表现出来。
我在响应网站上有动态图像列表。生成布局时,图像可以在行/列或列行中。
这个例子很接近,但是当浏览器调整大小时,成对的图像在底部不对齐...
<div style="width:100%;">
<div style="width:60%; display: flex; margin-left: auto; margin-right: auto;">
<div id="outterrow" style="width:100%; float:left; display: flex; padding-bottom: 1.15%; ">
<div id="column" style="float: left;overflow: hidden;background-color: inherit;width: 49.35%;">
<div id="row" style=" padding-right: 2.330294%; "><img title="2.jpeg" src="https://i.postimg.cc/Xv5YsYv7/2.jpg" sizes="100vw" width="100%">
</div>
</div>
<div id="column" style="float: left;overflow: hidden;background-color: inherit;width: 50.65%;">
<div id="row" style=" "><img title="1.jpg" src="https://i.postimg.cc/B6cQG7Dr/1.jpg" sizes="100vw" width="100%"> </div>
</div>
</div>
</div>
<div style="width:60%; display: flex; margin-left: auto; margin-right: auto;">
<div id="outterrow" style="width:100%; float:left; display: flex; padding-bottom: 1.15%; ">
<div id="column" style="float: left;overflow: hidden;background-color: inherit;width: 100%;">
<div id="row" style=" "><img title="3.jpg" src="https://i.postimg.cc/ZnbYYPxC/3.jpg" sizes="100vw" width="100%"> </div>
</div>
</div>
</div>
<div style="width:60%; display: flex; margin-left: auto; margin-right: auto;">
<div id="outterrow" style="width:100%; float:left; display: flex; padding-bottom: 1.15%; ">
<div id="column" style="float: left;overflow: hidden;background-color: inherit;width: 43.55%;">
<div id="row" style=" padding-right: 2.640643%; "><img title="5.jpg" src="https://i.postimg.cc/bwsJ2Tcn/5.jpg" sizes="100vw" width="100%"> </div>
</div>
<div id="column" style="float: left;overflow: hidden;background-color: inherit;width: 56.45%;">
<div id="row" style=" "><img title="4.jpg" src="https://i.postimg.cc/XJ07m6ZK/4.jpg" sizes="100vw" width="100%"> </div>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我已经尝试过对象适配,但是Safari似乎崩溃了。
编辑:这里供参考是问题的一个示例。
您当然可以使用背景图像而不是 HTML img 标签。如果您可以访问图像高度,我建议您通过 JavaScript 或 PHP(或您拥有的任何设置)动态填充该高度。我在包装容器内放置了一个 spacer-div,它可以用于此目的。
#wrap_all {
width:100%;
}
#inner {
max-width:1210px;
padding:0 50px;
margin:0 auto;
}
.flexrow {
display:flex;
justify-content: space-between;
background:#f5f5f5;
flex-wrap:wrap;
}
.flexcol {
flex:0 0 49%;
background-repeat: no-repeat;
background-size: cover;
background-position:top center;
margin-bottom: 2%;
}
.spacer.height-80vh {
height:80vh;
}
.flexcol.fullwidth {
flex:0 0 100%;
}Run Code Online (Sandbox Code Playgroud)
<div id="wrap_all">
<div id="inner">
<div class="flexrow">
<div class="flexcol" style="background-image: url('https://i.postimg.cc/Xv5YsYv7/2.jpg')">
<div class="spacer height-80vh"></div>
</div>
<div class="flexcol" style="background-image: url('https://i.postimg.cc/B6cQG7Dr/1.jpg')">
<div class="spacer height-80vh"></div>
</div>
<div class="flexcol fullwidth" style="background-image: url('https://i.postimg.cc/ZnbYYPxC/3.jpg')">
<div class="spacer height-80vh"></div>
</div>
<div class="flexcol" style="background-image: url('https://i.postimg.cc/bwsJ2Tcn/5.jpg')">
<div class="spacer height-80vh"></div>
</div>
<div class="flexcol" style="background-image: url('https://i.postimg.cc/XJ07m6ZK/4.jpg')">
<div class="spacer height-80vh"></div>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)