2

考虑以下 HTML 和 CSS:

HTML

<div class="eq">
    <span class="bar"></span>
    <span class="bar"></span>
    <span class="bar"></span>
    <span class="bar"></span>
    <span class="bar"></span>
</div>

CSS

.bar {
    background-color: green;
    width:15px;
    height:40px;
    display: inline-block;
    vertical-align: bottom;
    position: relative;
    bottom:0;
}

.eq {
    min-height:50px;
    border:1px solid blue;
}

我想垂直对齐:将蓝色 div 内的绿色条置于底部,但它似乎不起作用。有任何想法吗?

JS 小提琴:http: //jsfiddle.net/qRH33/

4

2 回答 2

2

我最初虽然更改.bardisplay:table-cell, 会起作用,(示例)但是,在这样做时,单元格的高度与父元素相同。

想到的唯一解决方案是包装 span 元素:

<div class="eq">
    <div id="bars">
    <span class="bar"></span>
    ...
    <span class="bar"></span>
    </div>
</div>

然后使用以下 CSS (示例) - 它可以工作。

.bar {
    background-color: green;
    width:15px;
    height:40px;
    display: inline-block;
    vertical-align:bottom;
}
#bars {
    display:table-cell;
    vertical-align:bottom;
}
.eq {
    min-height:100px;
    border:1px solid black;
    display:table;
}

基本上,我们将display:table-cell和分配vertical-align:bottom给包装元素#bars。这适用于不同的高度。(例子)

请注意,元素之间的间距.bar是因为它们是inline-block元素。如果您想防止这种情况发生,请参阅此(示例)

于 2013-11-12T19:49:19.907 回答
0

只需给line-height你的div容器一个,它等于div的高度。

line-height: 50px;

这是JSFiddle

于 2013-11-12T18:56:10.823 回答