【问题标题】:Aligning a DIV to vertical centre to a page将 DIV 对齐到页面的垂直中心
【发布时间】:2013-09-27 15:08:15
【问题描述】:
嗯,我已经阅读了很多解决方案,但没有一个能正常工作。
我不想将其水平居中对齐,它应该仅与页面垂直居中对齐。同样显然,页面大小是动态的,DIV 高度也是动态的。
我在 -
创建了一个 jsfiddle
http://jsfiddle.net/yesprasoon/mukKB/
你可以在 CSS 中看到height: 200px;,它运行良好。但是如果 div 大小发生变化怎么办?
【问题讨论】:
标签:
html
center
vertical-alignment
【解决方案1】:
jQuery 解决方案,这里是FIDDLE
$(function(){
var wHgt = $(window).innerHeight(),
lHgt = $('#loginForm').outerHeight();
$('#loginForm').css({ top: wHgt/2 - lHgt/2 + 'px' });
$(window).resize(function(){
var wHgt = $(window).innerHeight(),
lHgt = $('#loginForm').outerHeight();
$('#loginForm').css({ top: wHgt/2 - lHgt/2 + 'px' });
});
});
【解决方案2】:
纯 CSS 解决方案。
看到Working JSbin
HTML:(只是加了一个空span,注释很重要)
<span class="Centerer"></span><!--
--><div class="vertical-centre" id="loginForm">
<form>
<div id="welcometext2" style="text-align:center;"><b>Welcome to LC Inventory App</b>
</div>
<br />
<input type="text" name="username" id="username" value="" placeholder="Username" />
<input type="password" name="password" id="password" value="" placeholder="Password" />
<input type="submit" value="Login" id="submitButton" />
</form>
</div>
CSS:
*
{
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
}
html, body
{
height: 100%;
}
.vertical-centre
{
padding: 0 15px;
width: 100%;
display: inline-block;
vertical-align: middle;
}
.Centerer
{
display: inline-block;
height: 100%;
vertical-align: middle;
}