我在这里寻找答案并尝试了所有方法,但我无法找到适合我案例的解决方案。所以我决定问:
我想横向居中div" listapost" (包含在div" heart&#34 ;,宽度100%)。 " Listapost"包含一定数量的" post"根据屏幕的总宽度,每行2个或3个div。这是css:
#heart{width:100%}
#post{
width:50px;
float:left;
text-align:left;
padding:5px;
margin:1px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
color:#605f5f;
background-color:#f7f6f6;
}
#listapost{margin:0 auto;}
HTML是这样的:
<div id="heart">
<div id="listapost">
<div id="post">stuff</div>
<div id="post">stuff</div>
<div id="post">stuff</div>
....
</div>
</div>
即使使用&#34;显示:inline-block&#34;并删除&#34; post&#34;的浮动属性&#34; listapost&#34; div不居中。为什么呢?
答案 0 :(得分:2)
您需要在width
元素上指定#listapost
,否则该元素和#heart
元素的宽度相同,并且已经位于中间位置。
#heart{width:100%}
#post{
width:50px;
float:left;
text-align:left;
padding:5px;
margin:1px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
color:#605f5f;
background-color:#f7f6f6;
}
#listapost{margin:0 auto; width: 220px;}
<div id="heart">
<div id="listapost">
<div id="post">stuff</div>
<div id="post">stuff</div>
<div id="post">stuff</div>
....
</div>
</div>
更好的解决方案是删除float
项上的#post
值,然后为其显示inline-block
,然后您只需将#postalist
元素设置为中央text-align
。
#heart{width:100%}
#post{
width:50px;
display: inline-block;
text-align:left;
padding:5px;
margin:1px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
color:#605f5f;
background-color:#f7f6f6;
}
#listapost{text-align: center;}
<div id="heart">
<div id="listapost">
<div id="post">stuff</div>
<div id="post">stuff</div>
<div id="post">stuff</div>
....
</div>
</div>
答案 1 :(得分:1)
答案 2 :(得分:0)
将display: table;
添加到#listapost
,如下所示:
#heart {
width:100%
}
#post {
width:50px;
float:left;
text-align:left;
padding:5px;
margin:1px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
color:#605f5f;
background-color:#f7f6f6;
}
#listapost {
display: table;
margin:0 auto;
}
&#13;
<div id="heart">
<div id="listapost">
<div id="post">stuff</div>
<div id="post">stuff</div>
<div id="post">stuff</div>
....
</div>
</div>
&#13;