我正在尝试将#container
放在屏幕的中央,然后制作图表' float:left
内的#container
。
但是根据我在下面的代码,'图表'位于#container
下。任何人都可以告诉我如何更改代码?并告诉我为什么代码制作图表'在#container
之外。
#container {
margin: auto;
width: 10%;
border: 3px solid #73AD21;
padding: 10px;
}
#id1,
#id2,
#id3,
#id4 {
float: left;
font-size: 30px;
}

<div id="container">
<div id="id1">
<p>chart1</p>
</div>
<div id="id2">
<p>chart2</p>
</div>
<div id="id3">
<p>chart3</p>
</div>
<div id="id4">
<p>chart4</p>
</div>
</div>
&#13;
答案 0 :(得分:1)
当你向一个元素添加浮动时,你将从文档的自然流中取出。
您需要在浮动项的包装中添加某种clearfix。
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
#container{
margin: auto;
width: 10%;
border: 3px solid #73AD21;
padding: 10px;
}
#id1,
#id2,
#id3,
#id4 {
float:left;
font-size: 30px;
}
&#13;
<div id="container" class="clearfix">
<div id="id1"><p>chart1</p></div>
<div id="id2"><p>chart2</p></div>
<div id="id3"><p>chart3</p></div>
<div id="id4"><p>chart4</p></div>
</div>
&#13;
<强>更新强>
如果宽度固定,为什么要浮动div?
答案 1 :(得分:1)
每当float
需要清除float
项时,如果要应用相同的属性,请使用类而不是ID。
增加容器的width
,以便按照上面评论中的说明,每行包含2个项目
.cf:before,
.cf:after {
content: "";
display: block;
}
.cf:after {
clear: both;
}
#container {
margin: auto;
width: 24%; /* to have 2 divs per row */
border: 3px solid #73AD21;
padding: 10px;
}
.float {
float: left;
font-size: 30px;
}
&#13;
<div id="container" class="cf">
<div class="float">
<p>chart1</p>
</div>
<div class="float">
<p>chart2</p>
</div>
<div class="float">
<p>chart3</p>
</div>
<div class="float">
<p>chart4</p>
</div>
</div>
&#13;