6
div {
    width: 400px;
    height: 400px;
    background: yellow;
    z-index: 99;
    margin: 0 auto;
}

我有一条 div 弹出消息,它将位于顶层并位于页面中间。

但是,如果我设置position:absolute; z-index:99;它将在顶部但margin:0 auto;不会工作。

我怎样才能将它保持在图层的顶部并显示在中间?

4

1 回答 1

7

position: absolute;通过使用两个嵌套元素 ( demo )使具有应用的元素居中。

  1. 一个元素将被绝对定位以将其置于所有其他元素之上
  2. 第二个元素就像你期望的那样工作:使用它margin: 0 auto;来居中

HTML:

<div class="outer-div">
    <div class="inner-div">
        <p>This is a modal window being centered.</p>
    </div>
</div>

CSS:

.outer-div {
    position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    z-index: 13;

    /*
     * Setting all four values to 0 makes the element as big
     * as its next relative parent. Usually this is the viewport.
     */
}

.inner-div {
    margin: 0 auto;
    width: 400px;
    background-color: khaki;
}
于 2013-10-13T08:56:18.880 回答