我有以下布局:
.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自然浮动到有空间的同一条线上,但保持垂直和水平方向居中(因此卡的高度保持不变而不是无论背景如何,卡片都会扩展以填满整行。
如果我没有设置display:inline-block;
.card
div,则每行只保留一个。但是,如果我改变显示,中心就会停止工作。
我该如何解决这个问题?
答案 0 :(得分:1)
我相信这就是你要找的东西。
.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>