我有一个容器 div 和 5 个子 div
{display: inline-block}
因此它们彼此相邻出现。每个子 div 的高度为 20px,但容器会增长到 24px 的高度。为什么会这样?
小提琴:http: //jsfiddle.net/VHkNx/
我有一个容器 div 和 5 个子 div
{display: inline-block}
因此它们彼此相邻出现。每个子 div 的高度为 20px,但容器会增长到 24px 的高度。为什么会这样?
小提琴:http: //jsfiddle.net/VHkNx/
使用inline-block
显示器后,您的元素的行为类似于单词和字母。空格和行高也会被渲染,它可能会导致一些意想不到的结果。
解决这个问题的一种方法是给容器font-size: 0
设置(当然你仍然可以给子元素自己的元素font size
)。
line-height: 0
也可以。解决此问题的一种简单方法是添加vertical-align: top
到子元素:
.thing {
vertical-align: top;
display: inline-block;
background-color: Red;
height: 20px;
width: 18%;
margin-left: 1.25%;
margin-right: 1.25%;
}
这样,您无需调整行高或字体大小。
如前所述,可以使用浮动来实现类似的布局。两种方法都有效。参见演示:http: //jsfiddle.net/audetwebdesign/74Y2V/
内联块元素作为块放置在文本行的基线上,因为它们是内联元素,因此从基线到文本行底部的空间占用空间。
您可以使用浮动元素代替内联元素:
#container {
background-color: Green;
width: 500px;
overflow: hidden;
}
.thing {
float: left;
background-color: Red;
height: 20px;
width: 18%;
margin-left: 1.25%;
margin-right: 1.25%;
}
#first {margin-left: 0px;}
#last {margin-right: 0px;}
演示:http: //jsfiddle.net/VHkNx/2/
最简单的方法是不给它们 display: inline-block,而是使用 float: left; . 所有元素将彼此相邻浮动。祝你好运!