无论分辨率如何,都将内嵌HTML / JavaScript弹出窗口显示在屏幕中间

时间:2013-08-02 16:05:51

标签: javascript html css

我使用以下Javascript和CSS来创建弹出窗口:

<script type="text/javascript">
    Sys.debug = true;
    var popup;
    Sys.require(Sys.components.popup, function () {
        popup = Sys.create.popup("#popup", {
            parentElementID: "target",
        });
    });
    var popup2;
    Sys.require(Sys.components.popup, function () {
        popup2 = Sys.create.popup("#popup2", {
            parentElementID: "target",
        });
    });
</script>

#popup
{
    width: 400px;
    height: 250px;
    overflow: scroll;
    background-color: #EAFDB3;
    border: solid 2px black;
}
#popup2
{
    width: 400px;
    height: 250px;
    background-color: #EAFDB3;
    border: solid 2px black;
}

这些弹出窗口的显示位置完成:

 <span id="target" style="position: absolute; top: 50%; left: 50%; margin-top: -50px; margin-left: -100px;"></span>

弹出窗口的内容介于:

之间
<div id="popup" style="background: #EAFDB3; color: #000; padding: 15px; margin: 0px">CONTENT </div>

无论分辨率如何,如何在屏幕中间弹出此弹出窗口?

3 个答案:

答案 0 :(得分:2)

将顶部设置为50%,保留为50%。然后有一个负左边距是弹出窗口宽度的一半,负上边距是弹出窗口高度的一半。你所拥有的似乎很接近......

但是,如果弹出窗口大小为400x250,则margin-top应为-125px,margin-left应为-200px。

答案 1 :(得分:2)

对于动态大小的弹出窗口,请考虑将内容包装在div.vc-outer和div.vc-inner中。

CSS

.vc-outer {
  display: table;
  position: fixed;
  width: 100%;
  height: 100%; }

.vc-inner {
  display: table-cell;
  text-align: center;
  vertical-align: middle; }

.popup {
  display: inline-block; }

HTML

<div class="vc-outer"><div class="vc-inner">
  <div class="popup">Hey!</div>
</div></div>

答案 2 :(得分:0)

您提供内联样式(甚至相同的属性)以及使用ID。我建议只使用一次,然后使用ID。