如何實現兩個div等高效果

admin發表於2017-02-10
在網頁實際應用中,可能需要動態的實現兩個div的等高效果,當然不僅限於div,例如一個網頁分為左右兩欄,一欄的高度可能需要根據內容自適應,也就是說高度不是固定的,而另一欄需要和它保持高度一致,那麼就需要動態的設定高度。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#main{
  width:400px;
  height:600px;
  overflow:hidden;
  margin:0px auto;
}
#left{
  width:150px;
  height:400px;
  background-color:green;
  float:left;
}
#right{
  width:150px;
  height:200px;
  background-color:red;
  float:right;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var left=document.getElementById("left");
  var right=document.getElementById("right");
  right.style.height=left.offsetHeight+"px";
}
</script> 
</head>
<body>
  <div id="main">
    <div id="left"></div>
    <div id="right"></div>
  </div>
</body>
</html>

以上程式碼可以將右邊的div高度跟隨左邊div的高度變化,下面就簡單介紹一下如何實現次效果:

一.實現原理:

那就是獲取左邊的div的高度,然後再將此高度賦值給右邊的div,這樣就實現了兩個div高度相等的效果。

二.程式碼註釋:

1.window.onload=function(){},為window.onload繫結事件處理函式。

2.var left=document.getElementById("left"),獲取左邊div物件。

3.var right=document.getElementById("right"),獲取右邊div物件。

4.right.style.height=left.offsetHeight+"px",這一句是關鍵,下面分解介紹:

   right.style.height可用來獲取或者設定相應物件的高度。值是帶有px單位的字串型別。

   left.offsetHeight可以獲得物件的佔用高度,等於padding+border+height屬性值之和,返回值是數值型別。

相關文章