所有三个方框(box1,box2和box3)应位于同一条线上并对齐中心。
Here is a JsFiddle以下内容:
#wrapper {
background-color: lightcyan;
}
#container1 {
border: 2px dashed magenta;
}
#box1,
#box2,
#box3 {
height: 100px;
width: 100px;
postition: fixed;
}
#box1 {
border: 1px solid red;
float: left;
}
#box2 {
border: 1px solid green;
float: left;
}
#box3 {
border: 1px solid brown;
}

<div id="wrapper">
<div id="container1">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
&#13;
答案 0 :(得分:1)
<强>更新: 如果您遇到一些单线间隙问题,请考虑以下帖子:fighting line-gaps with inline-block
我对你的演示做了一些修改,你可以简单地用:
display: inline-block;
而不是使用
float: left;
。
添加
text-align: center;
可帮助您集中孩子。
更干净的代码
#wrapper{
background-color: lightcyan;
}
#container1{
border: 2px dashed magenta;
text-align: center;
}
#container1 > div{
height:100px;
width: 100px;
display: inline-block;
vertical-align: middle;
}
#box1{
border: 1px solid red;
}
#box2{
border: 1px solid green;
}
#box3{
border: 1px solid brown;
}
<div id="wrapper">
<div id="container1">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
答案 1 :(得分:1)
试试这个。
HTML
<div id="main">
<div id="container">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
CSS
#main{
background-color: lightpink;
overflow: auto;
padding:15px;
}
#container{
border: 1px solid grey;
width: 304px;
margin: 0 auto;
padding:5px;
}
#container:after{
content: '';
clear:both;
display: table;
}
#box1,#box2,#box3{
height:100px;
width: 100px;
float: left;
border:1px solid red;
}
#box2{
border-right: none;
border-left: none;
}
p{
text-align:center;
line-height: 100px;
margin: 0;
padding: 0;
}
答案 2 :(得分:0)
尝试更改这些 来自
#container1{
border: 2px dashed magenta;
}
到
#container1{
border: 2px dashed magenta;
display: table;
margin:0 auto;
}
还将浮动左侧添加到第三个框中,如此,
#box3{
border: 1px solid brown;
float: left;
}
这是fiddle。
答案 3 :(得分:0)
#wrapper{
background-color: lightcyan;
}
#container1{
border: 2px dashed magenta;
text-align: center;
}
#box1,#box2,#box3{
height:100px;
width: 100px;
display: inline-block;
}
#box1{
border: 1px solid red;
}
#box2{
border: 1px solid green;
}
#box3{
border: 1px solid brown;
}
<div id="wrapper">
<div id="container1">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
答案 4 :(得分:0)
您需要在框中添加浮动。还需要为container1设置一个宽度,使其能够通过边距对齐。我还在container1和amp;中添加了overflow auto。包装器清除浮子
#wrapper{
background-color: lightcyan;
border: 2px dashed magenta;
overflow: auto;
}
#container1{
overflow: auto;
width: 350px;
margin: 0px auto;
}
#box1,#box2,#box3{
height:100px;
width: 100px;
float: left;
}
#box1{
border: 1px solid red;
}
#box2{
border: 1px solid green;
}
#box3{
border: 1px solid brown;
}
答案 5 :(得分:0)
你可以这个小提琴:http://jsfiddle.net/7jctu0az/7/
只需使用HTML标记,您的问题就会得到解决。
#wrapper{
background-color: lightcyan;
}
#container1{
border: 2px dashed magenta;
margin-left: auto;
margin-right: auto;
}
#box1,#box2,#box3{
display:inline-block;
}
#box1{
border: 1px solid red;
}
#box2{
border: 1px solid green;
}
#box3{
border: 1px solid brown;
}
&#13;
<div id="wrapper">
<div id="container1">
<center>
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</center>
</div>
</div>
&#13;
答案 6 :(得分:0)
如果您希望最外面的容器有虚线轮廓,我也会为您创建这个 - 我想这可能就是您想要的。
基本上只浮动所有3次潜水,保证金:中心容器为0自动,最外层容器为clearfix:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix { display: inline-block; }
* html .clearfix { height: 1%; }
.clearfix { display: block; }
答案 7 :(得分:0)
有很多事情你可以解决这个问题,如上所述。我已经添加了一般描述,说明了每个属性在获取答案时所做的工作,希望您能够理解正在发生的事情,而不是仅仅复制/粘贴有效的答案(不是说& #39;总是一件坏事,但学习也很重要;))
适用于#container1
适用于#box1,#box2,#box3
box-sizing
并将其设置为border-box
。然后,这将计算所有三个框的宽度,以包括您指定的宽度为100px的填充,边框和边距。请注意,box-sizing属性是CSS3属性,并且不会针对旧浏览器(see here for a list of supported browsers and how to use the property)进行适当显示。在这种情况下,最后一个元素将被强制显示在其他两个元素下面。如果发生这种情况,您可以计算边框的增加像素宽度(在这种情况下为6个额外像素),以便再次正确适合。 适用于#box3
float:left;
。这是一个更新的JSFiddle,其中包含您修改后的代码http://jsfiddle.net/iandbanks/7jctu0az/11/
答案 8 :(得分:0)
删除float: left
和#box1
#box2
CSS
#container1{
border: 2px dashed magenta;
display: table; /*Add this*/
margin: 0 auto; /*Add this*/
}
#box1,#box2,#box3{
height:100px;
width: 100px;
display: table-cell /*Add this*/
}
答案 9 :(得分:0)
//use display:table in #box1,#box2,#box3;
#wrapper {
background-color: lightcyan;
}
#container1 {
border: 2px dashed magenta;
}
#box1,#box2,#box3 {
height: 100px;
width: 100px;
postition: fixed;
display:table;
}
#box1 {
border: 1px solid red;
float: left;
}
#box2 {
border: 1px solid green;
float: left;
}
#box3 {
border: 1px solid brown;
}
<div id="wrapper">
<div id="container1">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
答案 10 :(得分:0)
只需将display:table
添加到#box3
:
#wrapper {
background-color: lightcyan;
}
#container1 {
border: 2px dashed magenta;
}
#box1,
#box2,
#box3 {
height: 100px;
width: 100px;
/*position: fixed;*/
}
#box1 {
border: 1px solid red;
float: left;
}
#box2 {
border: 1px solid green;
float: left;
}
#box3 {
border: 1px solid brown;
display:table;
}
&#13;
<div id="wrapper">
<div id="container1">
<div id="box1">
<p>Box 1</p>
</div>
<div id="box2">
<p>Box 2</p>
</div>
<div id="box3">
<p>Box 3</p>
</div>
</div>
</div>
&#13;