我正在开始我的第一个完整的网站项目,已经学习HTML和CSS已有大约一个月了,而我刚学完flexbox的基础知识。我想知道是否有可能创建一个图像网格,当仅使用flexbox调整浏览器窗口大小时,图像会自动调整自身大小,这就是我目前所知道的一切。
我要重新创建的是this。左侧是一幅大图像,而右侧则是彼此堆叠的两个较小图像。当我缩小浏览器时,图像会保留在原位,并自动调整其大小。如果您想实时查看,请查看website。向下滚动直到看到它。
这是我对jsfiddle的糟糕尝试。由于某种原因,jsfiddle无法按照它们在我的计算机上显示的方式进行显示。计算机上的图像是并排的,就像我想要的那样,但是如果我调整窗口的大小,它会跳到下一行。
对于那些不想使用jsfiddle的人,这里是相关的HTML和CSS。我知道那是一团糟。
HTML:
/* Section: Gallery */
#gallery {
display: flex;
flex-wrap: wrap;
background: rgb(252, 246, 237);
text-align: center;
}
.coffee-img-1 {
width: 500px;
padding: 1.5rem;
margin-right: 5rem;
margin-top: 2rem;
max-width: 100%;
height: auto;
}
.coffee-img-2,
.coffee-img-3 {
width: 400px;
padding: 30px;
max-width: 100%;
height: auto;
}
.column {
flex: 50%;
padding: 1.5rem;
}
#gallery img:hover {
animation-name: opacity-hover;
animation-duration: 300ms;
animation-fill-mode: forwards;
}
@keyframes opacity-hover {
100% {
opacity: 0.9;
}
}
<!-- Gallery -->
<section id="gallery">
<div>
<img class="coffee-img-1" src="https://i.imgur.com/58DZwQ2.jpg" alt="Table with coffee and pastries">
</div>
<div class="column">
<img class="coffee-img-2" src="https://i.imgur.com/hsSn85u.jpg" alt="Barista pulling two espresso shots">
<img class="coffee-img-3" src="https://i.imgur.com/nmAId6V.jpg" alt="Barista brewing coffee with aeropress">
</div>
</section>
答案 0 :(得分:0)
在您的示例中,您忘记将类column
添加到第一个div中。像这样:
<!-- Gallery -->
<section id="gallery">
<div class="column">
<img class="coffee-img-1" src="https://i.imgur.com/58DZwQ2.jpg" alt="Table with coffee and pastries">
</div>
<div class="column">
<img class="coffee-img-2" src="https://i.imgur.com/hsSn85u.jpg" alt="Barista pulling two espresso shots">
<img class="coffee-img-3" src="https://i.imgur.com/nmAId6V.jpg" alt="Barista brewing coffee with aeropress">
</div>
</section>
要实现此行为,您可以将width
的{{1}}属性更改。 max-width
属性强制固定宽度,而width
(和max-width
)说:“嘿,即使我的图片大于它的尺寸,它也会调整为最大宽度{{1 }}“
示例:
https://codepen.io/icaromh/pen/jRopmp
文档: