在做页面的过程中,在很多地方都会遇到元素需要水平垂直的居中这个问题,之前总是去网上搜别人的代码,今天仔细研究了一下,分享给大家,先写一个简单的例子:
<div class="mui-content">
<div id="logo_wrap">
</div>
</div>
我就是想把id为logo_wrap的元素整个页面居中,logo_wrap的样式#logo_wrap{height: 100px;text-align: center;}。
首先水平居中很简单,如果logo_wrap的宽度是未设置的(100%)的话,通过设置#logo_wrap{text-align:center;}就可以实现水平居中;
如果logo_wrap宽度是有具体的数值的话,可通过设置#logo_wrap{margin:0 auto;}来实现。
其次是垂直居中。分为三步:1.获取到当前屏幕的高度;2.获取到需要居中的div的高度;3.用屏幕的高度减去div的高度除以2就是需要给div设置的margin-top的值。
针对上边的例子的JS代码:
<script type="text/javascript">
window.onload=function(){
var height=document.body.scrollHeight;
var logo_wrap=document.getElementById("logo_wrap");
var margin_top=(height-100)/2; //因为此div在页面中只用了一次且以后不会改变,所以写了数值,如果是不确定的,获取到高度放着这里就可以
logo_wrap.style.marginTop=margin_top+"px";
};
</script>