首頁 >web前端 >js教程 >純js程式碼實作未知寬高的元素在指定元素中垂直水平居中顯示_javascript技巧

純js程式碼實作未知寬高的元素在指定元素中垂直水平居中顯示_javascript技巧

WBOY
WBOY原創
2016-05-16 15:39:431370瀏覽

下文以span元素為例子,介紹如何實作span元素在div中實現水平垂直居中效果,程式碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>脚本之家</title>
<style type="text/css">
#box{
 width:200px;
 height:150px;
 background:blue;
 position:relative;
}
#antzone{
 background:green;
}
</style>
<script type="text/javascript">
window.onload=function(){
 var obox=document.getElementById("box");
 var oantzone=document.getElementById("antzone");
 var w=oantzone.offsetWidth;
 var h=oantzone.offsetHeight;
 oantzone.style.position="absolute";
 oantzone.style.left="50%";
 oantzone.style.top="50%";
 
 oantzone.style.marginLeft=-(w/2)+"px";
 oantzone.style.marginTop=-(h/2)+"px";
}
</script>
</head>
<body>
<div id="box">
 <spanj id="antzone">脚本之家</span>
</div>
</body>
</html>

上面你的程式碼實作了span元素在div中垂直水平居中效果,下面簡單介紹一下它的實作過程。

一.實現原理:

雖然css為明確給出span元素的尺寸,但是它畢竟有一個尺寸的,這個尺寸可以使用offsetWidth和offsetHeight屬性獲取,然後將此span元素設置為絕對定位,然後再將left和top屬性值分別設定為50%,但是這個時候並不是span元素的中心點垂直水平居中,而是span元素的左上角垂直水平居中,然後在設定span元素的負的外邊距,尺寸是span元素寬高的一半,這樣就實現了垂直水平居中效果。

以上就是本文的全部內容,今天就到此為止,後續給大家更新scrollTop、offsetHeight和offsetTop等屬性用法詳解,請持續關注本站,謝謝。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn