垂直对齐CSS中的元素

时间:2010-05-07 23:58:53

标签: html css

亲爱的专家们,我试图通过CSS将一个段落与一个分区元素的中间对齐,我不知道怎么能让它起作用。

 <style type="text/css">
    .wrap{
background:red;
height: 5em;  
     }
     p{
     background:blue; 
        height: 2em; 
vertical-align:middle; 

      }
  </style>


<div class="wrap">
    <p>
    ALIGN TEXT
    </p>
</div>

它在IE或Firefox中都不起作用,

4 个答案:

答案 0 :(得分:1)

Here's a nice hackish example,我把IE css放在条件中而不是用黑客隐藏它,其他那个很好。

  <div style="display: table; height: 400px; #position: relative; overflow: hidden;">
    <div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
      <div class="greenBorder" style=" #position: relative; #top: -50%">
        any text<br>
        any height<br>
        any content, for example generated from DB<br>
        everything is vertically centered
      </div>
    </div>
  </div>

答案 1 :(得分:0)

答案 2 :(得分:0)

或者,您可以使用vertical-align:middledisplay:inline-block和一个100%高度的空内联元素:

http://jsfiddle.net/HVtuD/

<div id='container'>
  <div id='text'>vertical-align + inline-block<br>trick<br>in action</div>
</div>

#container{
  height: 300px;border: 1px solid black;text-align:center;
}
#text,#container:before{
  vertical-align: middle;
  display: inline-block;
}
  #container:before{
  content: "";
  height: 100%;
  width: 0%;
}

答案 3 :(得分:-2)

如果没有表格,或者没有使用Javascript,就无法垂直对齐任何内容。