【发布时间】:2014-09-12 18:05:22
【问题描述】:
我设置了 4 个宽度为 120px 的 div,放置在 240px 宽的包装内。
JSFiddle 在这里 - http://jsfiddle.net/s7dxxro0/1/
HTML:
<div id="wrapper">
<div class="primary-content-block" id="about">
</div>
<div class="primary-content-block" id="gallery">
</div>
<div class="primary-content-block" id="contact">
</div>
<div class="primary-content-block" id="news">
</div>
</div>
CSS:
#wrapper {
margin:0 auto;
width: 240px;
}
.primary-content-block {
display:inline-block;
vertical-align:top;
width: 120px;
height: 120px;
}
#about {
background: radial-gradient(#5cc4ba, #00aa99);
}
#gallery {
background: radial-gradient(#5cc4ba, #00aa99);
}
#contact {
background: radial-gradient(#5cc4ba, #00aa99);
}
#news {
background: radial-gradient(#5cc4ba, #00aa99);
}
但是,由于对我的 4 个块应用了少许边距,因此元素不会彼此相邻显示。
这似乎是一个利润是从哪里来的?如何删除它?
这在我使用 float:left 代替 display:inline-block 时有效,但出于多种原因我不希望使用浮动
【问题讨论】:
-
添加浮动:左;如果容器不够宽,则增加容器的宽度
-
您的代码正在运行检查这里
http://jsfiddle.net/s7dxxro0/4/ -
您可以尝试this,因为换行符会在您的框之间添加空间。
-
@dcc 不要添加它。使用
float: left或使用display: inline-block。现在,您对于同一问题有两种解决方案(并排显示它们)。还要注意float: left会引入其他问题,特别是如果块的高度略有不同。所以不,虽然一开始看起来是这样,float: left并不是解决这个问题的正确方法。