我有以下布局:
.app-container {
display: flex;
flex-flow: row wrap;
align-content: center;
justify-content: space-around;
min-height: 100vh;
background-color: #4caf50;
font-family: "Roboto", "Noto", sans-serif;
font-size: 14px;
font-weight: normal;
color: rgba(0, 0, 0, 0.87);
margin-bottom: 84px;
}
.card {
background-color: #fff;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.12);
margin: 8px;
border-radius: 2px;
min-width: 304px;
max-width: 466px;
font-family: 'Roboto', 'Noto', sans-serif;
flex-grow: 1;
}
.card .text {
padding: 16px 16px 25px 16px;
font-size: 14px;
}
<div class="app-container">
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
</div>
</div>
</div>
现在我想要发生的是让 .card
div 自然地 float 在有空间的同一行上,但保持垂直和水平居中(所以卡片的高度保持不变相同,而不是卡片扩展以填充整行,而不管内容如何)。
如果我不设置 display:inline-block;
,我的 .card
div 只会每行一个。但是,如果我更改显示,居中将停止工作。
我该如何解决这个问题?
最佳答案
我相信这就是您要找的。p>
.app-container {
display: flex;
flex-flow: row wrap;
align-content: center;
justify-content: space-around;
align-items: center;
min-height: 100vh;
background-color: #4caf50;
font-family: "Roboto", "Noto", sans-serif;
font-size: 14px;
font-weight: normal;
color: rgba(0, 0, 0, 0.87);
margin-bottom: 84px;
}
.card {
background-color: #fff;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.12);
margin: 14px;
border-radius: 2px;
min-width: 120px;
max-width: 120px;
font-family: 'Roboto', 'Noto', sans-serif;
flex-grow: 1;
}
.card .text {
padding: 16px 16px 25px 16px;
font-size: 14px;
}
<div class="app-container">
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
<p>Four</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
</div>
</div>
<div class="card">
<div class="text">
<p>One</p>
<p>Two</p>
<p>Three</p>
</div>
</div>
</div>
关于html - 使用 flexbox 将多个元素居中 - flex-flow : row wrap puts every child in separate row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41790338/