【发布时间】:2015-07-21 23:17:52
【问题描述】:
我需要在<body></body> 中将一个名为".box" 的div 垂直和水平居中。它包含一个<h1>,仅此而已。未来可能会包含<img>。
我尝试了很多技巧来做到这一点,但不幸的是效果不佳......
所以我在这个话题上找到了:Centering a div vertically & horizontally using jQuery a solution with jQuery。但它并不完美,因为 div 停留在屏幕左侧,如您在此处看到的:http://www.arcadmedia.com/
所以我正在寻找解决方案(在 jQuery 或 CSS 中,但对我没有任何效果)。
我认为像这样的解决方案:http://jsfiddle.net/pqDQB/ 不是最好的,jQ 可以做得更好。
我只是在使用这个代码:
$(function() {
$('.box').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box').outerWidth()/2,
'margin-top' : -$('.box').outerHeight()/2
});
});
真不知道是哪里出了问题。
编辑: 盒子必须动态适应其内容!
【问题讨论】:
-
你的 div 有固定的高度和宽度吗?
-
问题出在你的容器(body)上,添加一个规则 html, body { width:100%;高度:100%;位置:相对; }
-
如果您的 div 没有固定的宽度/高度,您可以获取屏幕宽度,减去 div 的宽度并将左/右位置设置为该值的一半。身高也是一样。你也可以使用 CSS calc()
-
好的,我试试!不,我的 div 没有固定的宽度和高度,因为我希望盒子的内容灵活。
标签: javascript jquery html css