CSS vertical-align属性不起作用

时间:2013-04-25 03:31:47

标签: html css text-align

嘿,我有以下CSS代码:

.parent
{
    position : 'absolute';
    top : '50px';
    left : '50px';
    width : '400px';
    height : '160px';
    padding : '10px';
    border : '2px solid';
    border-color : '#444444';
    background-color : '#FF0000';
    text-align : 'center';
    /*display : inline; tried this also and didn't work.*/
}

.child
{
    color : '#123456';
    font-size : '16px';
    font-family : 'Arial';
    vertical-align : 'middle';
}

我只想把孩子的内容放在父div的中心(x和y),但它不起作用,它只显示父元素顶部的文本。有什么建议吗?谢谢。

3 个答案:

答案 0 :(得分:14)

vertical-align有一个欺骗性的名字。它实际上并不像您认为的那样垂直对齐元素。

如果您的孩子只有一行文字,您可以使用line-height技巧将其置于中心位置:

.parent {
    line-height: 160px; /* Height of the parent */
}

演示:http://jsfiddle.net/vVAdZ/

另一种方法是伪造一张桌子:

.parent {
    display: table;
}

.child {
    display: table-cell;
    vertical-align: middle;
}

演示:http://jsfiddle.net/vVAdZ/3/

答案 1 :(得分:2)

丢失CSS属性值中的引号,并将line-height: 160px;添加到.parent

答案 2 :(得分:2)

取任何宽度,在这种情况下为400,并除以div的一半。然后取高度160的一半,并将高度的一半除以2,你应该得到中心。