jquery - 如何将DIV放置在页面的顶部和中间?

标签 jquery asp.net html css

我有一个带有 formdiv 的页面:

<body>
    <form id="form1" runat="server">
        ...
    </form>
    <div id="wizardDiv" style="width: 100%; height: 100%;background-color:black;display:none">
        <div style="background-color:#8DA5C6; z-index:999; width: 50%; margin: 0 auto;">                
           ...
        </div>
    </div>
</body>

单击按钮时,我使 div 可见,并且我希望它覆盖整个页面,而内部 div 位于中间(在居中,水平和垂直。)就像弹出模式一样。

举例说明: enter image description here

当前 html 不符合以下条件:

  1. div 并未覆盖整个页面,它位于 form 后面,而不是覆盖它。
  2. 内部 div 仅水平居中,不垂直居中。

我在这里缺少什么?

我的方法“浏览器兼容性”安全吗? (也许我应该寻找 Jquery 解决方案?)


最终解决方案:

我最终使用:

最佳答案

使用稍微不同的标记和 CSS 来定位叠加层和弹出窗口。

构建一个简单的标记,如下所示:

<form id="form1" runat="server">
    ...
</form>
<div id="overlay"></div>
<div id="popup">Popup</div>

请注意,我没有将弹出窗口放在叠加层中。虽然这样做没有什么坏处,但如果您想使用 css 不透明度设置叠加层的样式,则其中包含的所有内容也将是半透明的。

然后使用以下 CSS:

#overlay {
    position: absolute;
    top:0;
    left:0;
    bottom:0;
    right:0;
    width:100%;
    height:100%;
    z-index:998;
    background-color: Black;
    opacity: .5;
}

#popup {
    position: absolute;
    width:50%;
    background-color:#8DA5C6;
    z-index: 999;
}
  • 两个元素都必须具有 position:absolute 才能脱离页面流。
  • 覆盖层必须覆盖整个空间。这是通过上、左、右、下、宽、高
  • 来实现的
  • 使用 z-index,您可以让它们保持在其他事物之上。较低的一个用于覆盖层,较高的一个用于弹出窗口

您可以查看这个fiddle一个工作示例。

注意:

这不会使弹出窗口居中。它需要更多的工作才能做到这一点,而且有点复杂(弹出窗口是否具有固定大小,如果在调整窗口大小时弹出窗口保持居中......)。

我猜这需要一些 JavaScript。

您不能在绝对定位元素上使用 margin: 0 auto;

关于jquery - 如何将DIV放置在页面的顶部和中间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8502019/

相关文章:

javascript - JS 在后台打开选项卡/模拟 ctrl-click

javascript - 如何更改 Chrome 扩展程序的警报对话框标题

c# - .Net RegularExpressionValidator 与 Regex 类的匹配方式不同

c# - ViewData 未传递到 ASP.NET Core 2.1 中的布局

javascript - 关闭 json 数据填充表

jquery - 根据html内容改变样式

javascript - 在文本框中设置值后如何复制到剪贴板?

jquery - 显示选项卡式 div 时的备用视觉按钮

javascript - 单击时隐藏/显示具有相同类的元素

c# - Sitecore 工作流程批准/拒绝电子邮件