我想创建一个响应图像网格3*N
我可以将图像调整为缩略图,并缩小到1缩略图时,每行看到的移动。
只是有几个问题:
1.难以居中并将图像裁剪为300 px X 300 px,垂直图像大小未知,如垂直图像x1c 0d1x和水平图像
1.当我的浏览器屏幕缩小到600 px-900 px时,我的图像行不会从每行3个缩略图变为每行2个缩略图
你能给我提供指导方针的布局显示图片在方形缩略图和响应网格?
下面是我用css编写codepen的工作,你可以把我的工作分叉然后继续
如有任何意见,请随时发表
https://codepen.io/burkaslarry/pen/abjovGz
body {
width: 80%;
margin: 30px auto;
font-family: sans-serif;
}
h3 {
text-align: center;
font-size: 1.65em;
margin: 0 0 30px;
}
div {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
/* or space-around */
}
a {
display: inline-block;
margin-bottom: 8px;
width: calc(50% - 4px);
text-decoration: none;
color: black;
}
@media screen and (min-width: 50em) {
a {
width: calc(25% - 6px);
}
}
a:hover img {
transform: scale(1.15);
}
figure {
margin: 0;
overflow: hidden;
}
img {
border: none;
width: 300px;
height: 300px;
object-fit: cover;
display: block;
background: #ccc;
transition: transform .2s ease-in-out;
}
.p a {
display: inline;
font-size: 13px;
margin: 0;
text-decoration: underline;
color: blue;
}
.p {
text-align: center;
font-size: 13px;
padding-top: 100px;
}
<div>
<a href="https://i.imgur.com/uBlbQr5.png">
<figure>
<img src="https://i.imgur.com/uBlbQr5.png" alt="">
</figure>
</a>
<a href="https://i.imgur.com/5OBlxo1.png">
<figure>
<img src="https://i.imgur.com/5OBlxo1.png" alt="">
</figure>
</a>
<a href="https://i.imgur.com/HM3UavW.png">
<figure>
<img src="https://i.imgur.com/HM3UavW.png" alt="">
</figure>
</a>
<a href="https://i.imgur.com/XRabiFI.png">
<figure>
<img src="https://i.imgur.com/XRabiFI.png" alt="">
</figure>
</a>
<a href="https://i.imgur.com/Np615iB.png">
<figure>
<img src="https://i.imgur.com/Np615iB.png" alt="">
</figure>
</a>
</div>
<p class="p">Demo by Larry Lo. <a href="http://www.sitepoint.com/using-modern-css-to-build-a-responsive-image-grid/" target="_blank">See article</a>.</p>
2条答案
按热度按时间lf5gs5x21#
在css样式中有一个覆盖,所以你只需要在一个站点中设置图像宽度,然后你的flex将工作https://codepen.io/elvengador/pen/abjbPjm
还有其他可能的解决方案:
vc6uscn92#
<figure>
是Flexbox父代的直接后代,但它不允许增长,也不能填满整个行高。<figure>
必须强制形成正方形。<figure>
内的<img>
必须能够水平和垂直增长以填充父<figure>
。900 / 16 = 56.25
,而不是50