中心对齐未知宽度和高度的div的最佳方法?

tes*_*dtv 2 html css css3 css-expressions

假设我的页面上有一个div:

<div class="center"></div>
Run Code Online (Sandbox Code Playgroud)

我的CSS看起来像:

.center{
    background:red;
    position:absolute;
    left:50%;
    top:50%;
    margin-left: ?
    margin-top: ?
}
Run Code Online (Sandbox Code Playgroud)

正如您在上面所看到的,我唯一需要知道的是如何设置margin-leftmargin-top值.如果我有一个已知的.centerdiv的宽度和高度(比如每个300px),我会设置margin-leftmargin-top值为该值的一半(-150px)

但我的问题是如果.centerdiv的宽度/高度未知(或者说它是动态的),我该如何设置这些值?

我可以使用某种CSS表达式,还是有跨浏览器限制?最好的方法是什么?

p.s*_*w.g 5

水平居中很容易.使用

width: 50%; /* or anything other than auto */
margin-left: auto;
margin-right: auto;
Run Code Online (Sandbox Code Playgroud)

或者:

margin: 0 auto;
Run Code Online (Sandbox Code Playgroud)

要垂直居中,这有点困难,并且很大程度上依赖于div周围的其他元素.有关指示,请参阅此文章.

  • `margin:auto`仅适用于固定宽度. (2认同)
  • 澄清:`margin:auto`仅适用于显式(非自动)宽度(长度值,如px,em或%).在这种情况下,没有明确的宽度. (2认同)