我在flex div中显示相同大小的项目列表。我把它们对齐到了左边。不过,我希望整个列表能够集中在一起。有关如何做到这一点的任何建议吗?
请尝试在下面剪断。
$('button').click(function(){
$('.list').toggleClass('hack')
});

.item {
width: 40px;
height: 40px;
background-color: skyblue;
border: 1px solid black;
}
.list-container {
width: 100px;
background-color: grey;
flex-direction: row;
display: flex;
}
.spacer {
flex: 1;
}
.list.hack {
width: 84px;
}
.list {
display: inline-flex;
flex-direction: row;
flex-wrap: wrap;
background-color: yellow;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='list-container'>
<div class='spacer'></div>
<div class='list'>
<div class='item'></div><div class='item'></div>
<div class='item'></div><div class='item'></div>
<div class='item'></div>
</div>
<div class='spacer'></div>
</div>
<button>Toggle fixed list width (hack)</button>
&#13;
答案 0 :(得分:1)
我认为最好的方法是插入&#34;项目&#34;元素到新div,设置:
<div style="margin:0 auto;width: 85px;">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
并应用.item{float:left;}
答案 1 :(得分:1)
将 justify-content:center; 设置为 .list 时,这还不够?
然后,如果您需要将独立项目对齐到左侧,您可以设置其 margin-right:42px; (以补偿其旁边的空间)
答案 2 :(得分:0)
您可以在不使用flex
的情况下执行相同的操作<强> HTML 强>
<div class='list'>
<div class='item'>item 1</div><div class='item'>item 2</div>
<div class='item'>item 3</div><div class='item'>item 4</div>
<div class='item'>item 5</div>
</div>
<强> CSS 强>
.list{
display:inline-block;
background-color: grey;
width:100px;
clear:both;
justify-content: center;
}
.list .item{
float:left;
width:48%;
background-color: skyblue;
height: 40px;
border: 1px solid black;
}
.list .item:last-child{
margin-left:25%;
}
点击here获取JSFiddle示例