将文本与div的底部对齐

时间:2013-12-01 21:09:19

标签: javascript jquery html css

我正在尝试将文本与div的底部对齐。通常,当我的div使用固定大小时,这是非常直接的。我用百分比尝试新的东西,垂直对齐似乎根本不起作用。

$(document).ready(function(e) {
    var mh = parseInt($('#map').height());
    var h = 70 - ((20/mh)* 100);
    document.getElementById('map').style.height = h + "%";  
});

#map{
    width:95%;
    height:70%;
    background-color:#F00;
}
<div id="home_header" style="display:table-cell; vertical-align:bottom; width:90%; height:30%;">
<h1>There is currently <?php echo $a; ?> users playing worldwide at the moment.</h1>
</div>
<div id="map"></div>

我知道这可以用固定的尺寸来完成,我以前做过,看过几次。继承人1 example。不知道为什么这不起作用是我必须使用固定大小的divs还是有另一种方式?

UPDATE-此方法适用于固定大小,例如100px;

3 个答案:

答案 0 :(得分:1)

尝试使用此css块

min-height:10em;
vertical-align:middle;
height:15%;
width:25%;
float:left;
margin:10px;
text-align:center;
padding-bottom:3.5cm;
margin-top:auto;
margin-bottom:auto; 

答案 1 :(得分:0)

假设您因为未知尺寸而谈论这是一个问题,您可以简单地使用绝对定位....

HTML

<div class="outerDiv">
    <h1>Text to be aligned</h1>
</div>

CSS

.outerDiv {
    position: relative;
    (Other styles here)
}

.outerDiv h1 {
    position: absolute;
    bottom: 0;
    text-align: center; (if needed centralising)
}

这将确保文本始终保持在div的底部,而不管div的高度。

答案 2 :(得分:0)

我想分享一下我自己提出的建议,不需要改变CSS。我改变了JavaScript来计算出将div作为一个百分比的大小,并将div缩放到适合页面的其余部分。通过使用固定大小的div所有剩下要做的是调整底部div所以它缩放以适应。

<div id="home_header" style="display:table-cell; vertical-align:bottom; width:90%; height:125px;">


var mh = parseInt($('#map').height());
    var a = ((20/mh)* 100);
    var b = ((125/mh) * 100);
    var c = ((45/mh) * 100);
    var d = 100 - a - b + c; //add page padding back on
    document.getElementById('map').style.height = d + "%";

我在文档就绪函数中使用它,如问题所示。