使用百分比高度垂直对齐元素内的文本?

时间:2009-06-29 08:39:53

标签: css vertical-alignment

由于我有一个百分比高的元素,我不能使用行高hack。有没有人对如何解决这个问题有任何想法?

<div height="100%">
    I want to be vertically aligned in the middle
</div>

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您必须设置div的高度值,然后设置line-height:value_of_div_height。 line-height 100%将无法工作,因为它将获取text的值,而不是div元素。只要height = line-height

,它可以使用或不使用vertical-align
div {
    height: 200px;
    line-height: 200px;
    display: block;
}

替代方法,如果你想在div元素中使用一个段落:http://www.w3.org/Style/Examples/007/center

DIV.container {
    min-height: 10em;
    display: table-cell;
    vertical-align: middle }
...
<DIV class="container">
  <P>This small paragraph...
</DIV>

答案 2 :(得分:1)

如果设置了字体大小,并且知道了所拥有的文本行数。 您可以将文本换行。并在跨度上使用以下CSS。

span {
    font-size:20px;
    margin-top:-10px; //half the font-size (or (font-size*number of lines)/2)
    position: relative;
    top: 50%;
}