使用CSS 3垂直对齐

有了CSS 3,有什么方法可以垂直对齐块元素吗? 你有一个例子吗? 谢谢。


最近在看这个问题,并试图:

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%);
}

这是小提琴:

http://jsfiddle.net/sTcp9/6/

它甚至可以在使用“宽度/高度:自动”时使用,而不是固定的尺寸。 测试Firefox,Chrome和IE(* gasp *)的最新版本。


注意:本示例使用灵活框布局模块的草稿版本。 它已被不兼容的现代规范所取代。

通过将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:

.container {
    display: flex;
    /* Vertical align: */
    align-items: center;
    /* Horizontal align: */
    justify-content: center;
}

jsFiddle:http://jsfiddle.net/maars/8Uyvf

浏览器支持:http://caniuse.com/flexbox(一些浏览器需要前缀)

链接地址: http://www.djcxy.com/p/41483.html

上一篇: Align vertically using CSS 3

下一篇: How can I create this effect on a slider?