html - CSS“如果换行则适合宽度的孩子”
问题描述
我试图在没有 javascript 的情况下实现的是将四个按钮排列在一个 2x2 矩阵中,只要它们的所有内容都适合一个单元格。当它们中的任何一个太长而无法容纳时,它应该包装成一个 1x4 矩阵,所有单元格都具有全宽。我现在能想到的最好的就是下面的代码片段。直到包裹后单元格应具有全宽为止都很好。
.flex-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-content: flex-start;
align-items: center;
border: 1px solid red;
}
.flex-item {
flex: 0 1 auto;
align-self: auto;
min-width: 40%;
max-width: 100%;
text-align: center;
padding: 10px;
border: 1px solid blue;
margin: 5px;
}
<div class="flex-container">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div>
<div class="flex-container" style="width: 280px; margin-top: 2em;">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div>
<div class="flex-container" style="width: 150px; margin-top: 2em;">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div
解决方案
像这样的东西?我flex:1;
为.flex-item
.flex-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-content: flex-start;
align-items: center;
border: 1px solid red;
}
.flex-item {
flex:1;
align-self: auto;
min-width: 40%;
max-width: 100%;
text-align: center;
padding: 10px;
border: 1px solid blue;
margin: 5px;
}
<div class="flex-container">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div>
<div class="flex-container" style="width: 280px; margin-top: 2em;">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div>
<div class="flex-container" style="width: 150px; margin-top: 2em;">
<div class="flex-item">AAA</div>
<div class="flex-item">BBBBBB</div>
<div class="flex-item">CCCCCCCCC</div>
<div class="flex-item">DDDDDDDDDDD</div>
</div
推荐阅读
- reactjs - 如何使用带有 ReactJs 的 ChartistJs 库更改条形图标签的颜色和字体
- recursion - 在 mips 程序集中查找数组中元素的总和(使用递归)
- reactjs - redux-persist 在反应通用应用程序的服务器端渲染中不起作用
- java - Gradle 声明以抑制“未经检查”的警告不起作用
- docker - ENV、RUN 产生层、图像或容器?(了解文档问题)
- android - Google API:授权无效,不是有效的电子邮件或用户 ID
- jquery - 查找具有特定类的第一个 div;从底部开始
- vue.js - vuejs 中不存在名为“ROUTENAME”的 vue-router 路由
- java - 为数据驱动的项目创建一个可运行的 Jar,为输入数据定制 excel
- javascript - 如何使用 ES6 过滤器和映射将平面结构转换为嵌套结构