使用CSS 3,有什么方法可以垂直对齐块元素?你有例子吗?谢谢。
Answers:
最近正在研究此问题,并尝试:
HTML:
<body>
    <div id="my-div"></div>
</body>
CSS:
#my-div {               
    position: absolute;
    height: 100px;
    width: 100px;    
    left: 50%;
    top: 50%;
    background: red;
    transform: translate(-50%, -50%);    
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}
这是小提琴:
当使用“宽度/高度:自动”代替固定尺寸时,它甚至可以工作。在Firefox,Chrome和IE的最新版本上进行了测试(*喘气*)。
transform-style: preserve-3d;到父元素(来源:zerosixthree.se/…)。
                    注意:此示例使用“柔性盒布局模块”的草稿版本。它已被不兼容的现代规范所取代。
通过将box-align和box-pack属性一起使用,可以使div框的子元素居中。
例:
div
{
width:350px;
height:100px;
border:1px solid black;
/* Internet Explorer 10 */
display:-ms-flexbox;
-ms-flex-pack:center;
-ms-flex-align:center;
/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;
/* Safari, Opera, and Chrome */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
/* W3C */
display:box;
box-pack:center;
box-align:center;
} 
    使用Flexbox:
<style>
  .container {
    display: flex;
    align-items: center; /* Vertical align */
    justify-content: center; /* Horizontal align */
  }
</style>
<div class="container">
  <div class="block"></div>
</div>
中心block内container垂直(和水平)。
浏览器支持:http : //caniuse.com/flexbox
几种方法:
1.绝对定位-您需要具有声明的高度才能进行此工作:
<div>
   <div class='center'>Hey</div>
</div>
div {height: 100%; width: 100%; position: relative}
div.center {
     width: 100px;
     height: 100px;
     top: 50%;
     margin-top: -50px;
}
* 2.使用显示:表格http://jsfiddle.net/B7CpL/2/ *
<div>
     <img src="/img.png" />
     <div class="text">text centered with image</div>
</div>
div {
     display: table;
     vertical-align: middle
}
div img,
div.text {
     display: table-cell;
     vertical-align: middle
}
我总是使用本文中的教程来确定事物的中心。这很棒
div.container3 {
   height: 10em;
   position: relative }              /* 1 */
div.container3 p {
   margin: 0;
   position: absolute;               /* 2 */
   top: 50%;                         /* 3 */
   transform: translate(0, -50%) }   /* 4 */
基本规则是: