我在另一个div容器中有2个div。我使用flexbox将它们垂直居中放在容器内,但我希望它们在水平方向上彼此相邻,而不是在另一个上方。我尝试了一些不同的方法,包括将容器的display
属性从flex
更改为inline-flex
,以及将display:inline-block
添加到子div。这是我与之合作的图片。正如您所看到的那样,2个div(图片和组1标签)在父div中居中,但我希望Group 1位于图片旁边而不是它下面。
以下代码并链接到JSfiddle:
HTML
<div class="user-group">
<div>
Picture 1
</div>
<div class="user-group-name"><h4>Group 1</h4></div>
</div>
JS
.user-group{
font-family: 'Purista';
border: solid 1px;
display: inline-flex;
float: left;
justify-content:center;
align-content:center;
flex-direction:column; /* column | row */
width: 50%;
height: 200px;
}
.user-group > div{
display: inline-flex;
}
答案 0 :(得分:1)
这取决于你是否打算在元素中有多个图片+文本对。如果您不这样做,只需使用align-items: center
就可以解决您的问题。您的代码存在一些问题:
align-content
不是flex属性display: inline-flex
,您的情况不需要它row
(如果未声明,则默认为row
,因此我们可以删除该属性)
.user-group {
font-family: 'Purista';
border: 1px solid;
display: flex;
justify-content: center;
align-items: center;
width: 50%;
height: 200px;
}
h4 {
margin: 0;
}
&#13;
<div class="user-group">
<div>
<img src="https://placehold.it/32x32" alt="" title="" />
</div>
<div class="user-group-name">
<h4>Group 1</h4></div>
</div>
&#13;
另一方面,如果你有多个图片+文字对,你将不得不求助于嵌套。每对都必须由额外的<div>
包裹:
.user-group {
font-family: 'Purista';
border: 1px solid;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 50%;
height: 200px;
}
.user-group > div {
display: flex;
margin-bottom: 10px;
}
h4 {
margin: 0;
}
&#13;
<div class="user-group">
<div>
<img src="https://placehold.it/32x32" alt="" title="" />
<div class="user-group-name"><h4>Group 1</h4></div>
</div>
<div>
<img src="https://placehold.it/32x32" alt="" title="" />
<div class="user-group-name"><h4>Group 2</h4></div>
</div>
<div>
<img src="https://placehold.it/32x32" alt="" title="" />
<div class="user-group-name"><h4>Group 3</h4></div>
</div>
</div>
&#13;