将 <div> 居中的最佳方式在页面上垂直和水平?

在页面上垂直和水平居中 <div> 元素的最佳方式?

Best way to center a <div> element on a page both vertically and horizontally?

我知道 margin-left: auto;margin-right: auto; 将在水平方向居中,但垂直居中的最佳方式是什么?

I know that margin-left: auto; margin-right: auto; will center on the horizontal, but what is the best way to do it vertically, too?

推荐答案

最好最灵活的方式

这个演示的主要技巧是在元素的正常流动中从上到下,所以 margin-top: auto 设置为零.但是,绝对定位的元素在分配可用空间时的作用相同,并且类似地可以在指定的 topbottom 垂直居中(在 IE7 中不起作用).

The best and most flexible way

The main trick in this demo is that in the normal flow of elements going from top to bottom, so the margin-top: auto is set to zero. However, an absolutely positioned element acts the same for distribution of free space, and similarly can be centered vertically at the specified top and bottom (does not work in IE7).

##这个技巧适用于任何大小的div.

##This trick will work with any sizes of div.

div {
    width: 100px;
    height: 100px;
    background-color: red;
    
    position: absolute;
    top:0;
    bottom: 0;
    left: 0;
    right: 0;
    
    margin: auto;
}

<div></div>

相关文章