2014-09-30 288 views
3

我一直在尝试display:inline-block div元素,我试图找出为什么我的两个内部div元素不显示在同一行上。这两个div都设置为200px的宽度,并将其父div设置为400px。CSS:为什么这个inline-block div不显示在同一行上?

如果我设置内部div向左浮动而不是使用inner-block,它按预期工作。

的代码片段如下:

注:我已经设置框上浆边境盒。所以我认为这将使两个内部div正好是200px,即使是1px边框。

* { 
 
    box-sizing: border-box; 
 
} 
 
html, 
 
body { 
 
    padding: 0; 
 
    margin: 0 
 
} 
 
.container { 
 
    width: 400px; 
 
} 
 
.inner { 
 
    border: 1px solid black; 
 
    padding: 10px 0; 
 
    width: 200px; 
 
    display: inline-block; 
 
}
<h1>Why does this display on two lines?</h1> 
 
<div class="container"> 
 
    <div class="inner">Testing border box property</div> 
 
    <div class="inner">Second div</div> 
 
</div>

回答

4

您可以通过添加font-size:0px;父元素(.container)删除inline-block元素之间的空格然后加入font-size(例如16像素)儿童(.inner)元素。

* { 
 
    box-sizing: border-box; 
 
} 
 
html, 
 
body { 
 
    padding: 0; 
 
    margin: 0 
 
} 
 
.container { 
 
    width: 400px; 
 
    font-size:0px; 
 
} 
 
.inner { 
 
    border: 1px solid black; 
 
    padding: 10px 0; 
 
    width: 200px; 
 
    display: inline-block; 
 
    font-size: 16px; 
 
}
<h1>Why does this display on two lines?</h1> 
 
<div class="container"> 
 
    <div class="inner">Testing border box property</div> 
 
    <div class="inner">Second div</div> 
 
</div>

+1

啊白色空间!谢谢!或者,我可以在同一行代码内部div,两个元素之间没有任何空格。 – neodymium 2014-09-30 01:19:03

0

边框。边框将为每个方框添加2个像素,因此内容实际上是404个像素,并且它不适合400个像素宽的div。

+0

我已经设定框的大小为边框。所以不应该内部div的宽度的宽度应该是完全200px? – neodymium 2014-09-30 01:06:08

+0

我刚才看到了。这应该。尝试添加“float:left;”和“显示:块;”而不是“display:inline-block;” - 这应该工作。这就增加了对clearfix的需求,虽然:( – 2014-09-30 01:08:34

+0

你是对的,浮动工程,但我真的想知道为什么内部块不工作! – neodymium 2014-09-30 01:10:09

0

容器div中没有​​足够的空间。容器DIV更改为404px,以帐户为左,右两侧的每个内的div