【发布时间】:2022-01-09 01:20:37
【问题描述】:
我有一个居中的 flexbox 父 div,#con,宽度为 %,其中有一个包含图像的 div (.block) 夹在两个填充文本 div(#info 和 #links)之间。如何使用 JS 或 CSS 强制 .block img 成为边长等于 #con 宽度的正方形? .block 可以包含 1x1=1 图像、2x2=4 图像等;因此,background-image 不是一个选项。模仿解决方案here 似乎只有在我将 JS 中的con.width() 替换为特定值(例如,300px,如here 与此placeholder image 所示)时才有效,这是不理想的。
var con = $("#con");
$(".block").css("height", con.width(), "width", con.width());
body {
font-size:1rem;
text-align:center;
margin:0;
height:100vh;
display: flex;
align-items: center;
justify-content: center;
overflow:hidden;
}
#con {
width:50%;
max-width:300px;
display:flex;
flex-flow:row wrap;
justify-content:center;
margin:5rem auto;
border:1px solid black;
}
.block {width:100%; overflow:hidden; background:black;}
.block img {
position: relative;
top: 0;
bottom: 0;
left: 0;
right: 0;
object-fit: cover;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<div id="con">
<div id="info">...</div>
<div class="block"><img src="https://dbdzm869oupei.cloudfront.net/img/vinylrugs/preview/60150.png"></div>
<div id="links">...</div>
</div>
【问题讨论】:
标签: javascript html jquery css