将 div 定位到可见区域的中心
我正在为邮件列表注册制作一个灯箱样式的弹出窗口,但我希望弹出窗口位于可见页面的中心,而不仅仅是整个文档的中心;如果用户滚动到页面底部并单击注册,我希望它出现在屏幕中央。
我假设 jQuery/JS 将是实现此目的的最佳方式;这是我当前的 CSS 代码,它运行得相当好,但是对于较小的屏幕,需要将 div 动态下推到可见空间中。
.my-div{
width:960px;
height:540px;
position:absolute;
top:50%;
left:50%;
margin-left:-480px;
margin-top:-270px;
z-index:60;
display:none;
}
I'm in the midst of making a lightbox style pop-up for a mailing list sign up, but I want the pop-up to position to the center of the visible page, not just the center of the whole document; if the user scrolls to the bottom of the page and clicks to sign up, I want it to appear in the center of the screen.
I'm assuming jQuery/JS will be the best way to go for this; here's my current CSS code which works fairly well but the div needs to be pushed down into the visible space dynamically for smaller screens.
.my-div{
width:960px;
height:540px;
position:absolute;
top:50%;
left:50%;
margin-left:-480px;
margin-top:-270px;
z-index:60;
display:none;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你很接近!它可以单独使用 CSS 来完成:
使用
position:fixed
而不是position:absolute
。固定是指视口,而绝对是指文档。 阅读所有内容!
You were close! It can be done with CSS alone:
Use
position: fixed
instead ofposition: absolute
.Fixed refers to the viewport, while absolute refers to the document. Read all about it!
我知道这不能解决问题,但它是一个很好的参考和起点: 如何将 div 放置在浏览器窗口的中心
将 Div 精确放置在屏幕中心
JSFiddle这里
和此处
I know this will not solve the question but it is good reference and a starting point: How to position a div in the center of browser window
Position Div Exactly at the center of the screen
JSFiddle here
and here
使用 jQuery:
with jQuery:
尽管接受的答案是最好的,但如果您无法将
div位置
设置为fixed
,那么你就可以使用这个纯 JavaScript 解决方案。JSFiddle
或者更精简的版本:
这个答案是来自 Lahiru Ashan 答案的普通 JavaScript 版本。
Although the accepted answer is best, if you can't set the
divs position
tofixed
, then you can use this pure JavaScript solution.JSFiddle
Or a more condensed version:
This answer is a vanilla JavaScript version from Lahiru Ashan's answer.