当页面大于屏幕时,如何在屏幕中间放置div

Cod*_*r 2 135 html css window center

嗨我正在使用类似于以下内容的东西来获得位于屏幕中间的div:

<style type="text/css"> 
#mydiv {
    position:absolute;
    top: 50%;
    left: 50%;
    width:30em;
    height:18em;
    margin-top: -9em; /*set to a negative number 1/2 of your height*/
    margin-left: -15em; /*set to a negative number 1/2 of your width*/
    border: 1px solid #ccc;
    background-color: #f3f3f3;
}

</style>


<div id="mydiv">Test Div</div>
Run Code Online (Sandbox Code Playgroud)

然而,问题是它将项目放在页面中间而不是屏幕上.因此,如果页面高几个屏幕并且我位于页面的顶部(部分的顶部显示在屏幕上),当我显示div时,它甚至不在屏幕上.你必须向下滚动才能查看它.

有人可以告诉我你是如何让它出现在屏幕中间的吗?

Hus*_*ein 258

只需添加position:fixed即使向下滚动它也会保持在视图中.在http://jsfiddle.net/XEUbc/1/上看到它

#mydiv {
    position:fixed;
    top: 50%;
    left: 50%;
    width:30em;
    height:18em;
    margin-top: -9em; /*set to a negative number 1/2 of your height*/
    margin-left: -15em; /*set to a negative number 1/2 of your width*/
    border: 1px solid #ccc;
    background-color: #f3f3f3;
}
Run Code Online (Sandbox Code Playgroud)


小智 83

我认为这是一个简单的解决方案:

<div style="
    display: inline-block;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 200px;
    height: 100px;
    margin: auto;
    background-color: #f3f3f3;">Full Center ON Page
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这种方法比批准的答案要好得多 (7认同)
  • 喜欢这个,但是这个在"老"的浏览器中工作吗? (2认同)

Cha*_*rma 14

试试这个。

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个更有用,因为您不需要向父元素应用任何样式。 (2认同)

Erd*_*gan 12

使用变换;

<style type="text/css">
    #mydiv {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
</style>
Run Code Online (Sandbox Code Playgroud)

Javascript解决方案:

var left = (screen.width / 2) - (530 / 2);
var top = (screen.height / 2) - (500 / 2);
var _url = 'PopupListRepair.aspx';
window.open(_url, self, "width=530px,height=500px,status=yes,resizable=no,toolbar=no,menubar=no,left=" + left + ",top=" + top + ",scrollbars=no");
Run Code Online (Sandbox Code Playgroud)


小智 5

刚刚放 margin:auto;

#mydiv {
    margin:auto;
    position:absolute;
    top: 50%;
    left: 50%;
    width:30em;
    height:18em;
    margin-top: -9em; /*set to a negative number 1/2 of your height*/
    margin-left: -15em; /*set to a negative number 1/2 of your width*/
    border: 1px solid #ccc;
    background-color: #f3f3f3;
}
Run Code Online (Sandbox Code Playgroud)

<div id="mydiv">Test Div</div>
Run Code Online (Sandbox Code Playgroud)