html - Flexbox 对齐网格
问题描述
我正在尝试使用 flexbox 创建相同的基本对齐网格。如果我放置一些图像并应用 flex wrap,它看起来像这样:
#wrap {
display: flex;
flex-wrap: wrap;
max-width: 800px;
}
.box {
margin: 1px;
position: relative;
text-align: center;
height: 100%;
}
img {
position: relative;
display: block;
}
<div id="wrap">
<div class="box"><img src="https://via.placeholder.com/250x150" /></div>
<div class="box"><img src="https://via.placeholder.com/400x150" /></div>
<div class="box"><img src="https://via.placeholder.com/500x150" /></div>
<div class="box"><img src="https://via.placeholder.com/150x150" /></div>
</div>
这很好用,但是一旦可用宽度变小,图像就会掉入新行(显然是因为换行)。我想知道这是否可以做出响应,因此无论可用宽度如何,它都能保持这种布局?但它需要是动态的,而不是将单个类应用于具有自定义 css 的图像。
或者没有javascript就无法做到这一点?
解决方案
这是我理解的小提琴基础。 https://jsfiddle.net/m4j1e3tb/
我改变的事情:
每一行都是它自己的弹性容器
flex 容器不会包裹
在作为弹性项目的“盒子”上,我添加了
flex-shrink: 1
,它告诉盒子在空间“用完”时缩小
.box {
margin: 1px;
position: relative;
text-align: center;
max-width: 100%;
flex-shrink: 1;
}
编辑:格式化。抱歉,我还是 stackoverflow 的新手。
推荐阅读
- java - 在响应正文中通过“findAll”搜索时出现异常“没有此类字段:类的年龄:java.util.HashMap$Node”
- laravel - Laravel如何从自己的表中设置会话并显示到视图
- google-sheets - 谷歌表格:在输入范围内映射 GOOGLEFINANCE 函数
- java - 如何在 Eclipse 中获取活动 c 项目的名称?
- javascript - 如何使用抽象来修复类的相关化?
- mysql - 其他情况的 SQL 最佳实践
- nginx - 如何从 nginx conf 中的重定向 url 中删除 www
- r - 在数据框中划分值
- python - 如何在 Python 中的球体表面上创建等高线图?
- pandas - 对与列链接的熊猫数据框中每个单元格的行进行排序