在div vertical-align中垂直对齐文本不起作用

时间:2014-08-01 14:00:48

标签: javascript css

所以我试图将文本置于div的中间。 我看了一半的网站,看起来我必须做那样的smthg:

.container{
    width:100px;
    height:200px;
    display:table-cell;
    vertical-align: middle;
    line-height: normal;  
}

但它不起作用......

这就是我的所作所为:

HTML:

    <div id="left_bot" class="menu_button"><span class="text_menu_button">Div1</span></div>

CSS:

.menu_button{
    width:37%;
    height: 44%;
    text-align: center;
    display: table-cell;
    vertical-align: middle;
    line-height: normal;  
    font-size: 48px;
}
#left_top{
    top:0;
    float:left;
    background-color: red;
    margin: 2% 1% 1% 2%;
}

但是我仍然将文本放在中心,但不是在div的中间。

我不知道为什么,我试图在.text_menu_button上插入vertical-align但仍然没有:x

Thx

2 个答案:

答案 0 :(得分:2)

.container 应该有display: table; .menu-bottom display: table-cell;来对CSS应用表格行为。

<强> HTML

<div class="container">
    <div id="left_bot" class="menu_button"><span class="text_menu_button">Div1</span>
    </div>
</div>

<强> CSS

.container {
    height:200px;
    display:table;
    width: 100%;
}
.menu_button {
    text-align: center;
    display: table-cell;
    vertical-align: middle;
    font-size: 48px;
}

演示:http://jsfiddle.net/ALB6D/1/

答案 1 :(得分:0)

垂直居中文本的一种简单方法是将行高设置为等于高度。

div { font-size: 30px; line-height: 100px; height: 100px; }

演示:jsFiddle