指令碼控制三行三列自適應高度DIV布局_經驗交流
來源:互聯網
上載者:User
這個例子是用JS指令碼控制並列DIV的高度,通常在DIV布局中,自適應高度一直是比較頭疼的問題,一般大都採用背景圖、外套DIV、右欄覆蓋左欄......來解決。現在加了指令碼後,簡單多了,假如有三個水平並列的DIV,fbox、mbox、 sbox,只要在標籤中寫入:onload="P7_equalCols('fbox','mbox','sbox')",測試條件:ie5.x、ie6.0、FF1.03、NS7.2、opera8.01。最終效果。
JS代碼:著作權歸原作者 ,僅供學習研究.
複製代碼 代碼如下:
/*
------------------------------------------------
PVII Equal CSS Columns scripts
Copyright (c) 2005 Project Seven Development
www.projectseven.com
Version: 1.5.0
------------------------------------------------
*/
function P7_colH(){ //v1.5 by PVII-www.projectseven.com
var i,oh,hh,h=0,dA=document.p7eqc,an=document.p7eqa;if(dA&&dA.length){
for(i=0;ioh=dA[i].offsetHeight;h=(oh>h)?oh:h;}for(i=0;idA[i].style.height=h+'px';}else{P7_eqA(dA[i].id,dA[i].offsetHeight,h);}}if(an){
for(i=0;ih){
dA[i].style.height=(h-(hh-h))+'px';}}}else{document.p7eqa=1;}
document.p7eqth=document.body.offsetHeight;
document.p7eqtw=document.body.offsetWidth;}
}
function P7_eqT(){ //v1.5 by PVII-www.projectseven.com
if(document.p7eqth!=document.body.offsetHeight||document.p7eqtw! =document.body.offsetWidth){
P7_colH();}
}
function P7_equalCols(){ //v1.5 by PVII-www.projectseven.com
if(document.getElementById){document.p7eqc=new Array;for(i=0;idocument.p7eqc[i]=document.getElementById(arguments[i]);} setInterval("P7_eqT()",10);}
}
function P7_eqA(el,h,ht){ //v1.5 by PVII-www.projectseven.com
var sp=10,inc=10,nh=h,g=document.getElementById(el),oh=g.offsetHeight,ch=parseInt(g.style.height) ;
ch=(ch)?ch:h;var ad=oh-ch,adT=ht-ad;nh+=inc;nh=(nh>adT)?adT:nh;g.style.height=nh+'px';
oh=g.offsetHeight;if(oh>ht){nh=(ht-(oh-ht));g.style.height=nh+'px';}
if(nh}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>指令碼控制三行三列自適應高度DIV布局</title> <style type="text/css"> <!-- body{ font-size: 75%; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; line-height: 100%; margin: 5px; padding: 0px; } #header,#mid,#footer{ width: 760px; margin: 0px auto; padding: 0px; } #header{ background: #F4F4F4; height: 60px; margin-bottom: 5px; } h3,h5{ padding-top: 25px; color: #708090; text-align: center; margin: 0; } #fbox{ background: #F1F1F1; width: 195px; float: left; } #mbox{ background: #DFF7FF; margin: 0px 5px 0px; padding: 0px; float: left; width: 360px; } #sbox{ background: #FFEBCC; width: 195px; float: right; } p{ margin: 0px; padding: 10px; text-indent: 2em; line-height: 130%; } #footer{ background: #CDDBED; border-top: solid 5px #FFFFFF; text-align: center; height: 60px; clear: both; } --> </style> </head> <body onload="P7_equalCols('fbox','mbox','sbox')"> <h3>指令碼控制三行三列自適應高度DIV布局</h3> <p> 親和力指的並不只是關於盲人和螢幕助讀程式。還有許多人雖然不是盲人,但是有視力障礙 - 你我變老時就會成為他們的一員。 使網站變得更具親和力的一個最簡單的方法就是允許使用者改變文字大小;拒絕提供這樣的選擇就剝奪了使用者的主導權,很可能使使用者無法舒適地閱讀。 </p><p> 親和力指的並不只是關於盲人和螢幕助讀程式。還有許多人雖然不是盲人,但是有視力障礙 - 你我變老時就會成為他們的一員。 使網站變得更具親和力的一個最簡單的方法就是允許使用者改變文字大小;拒絕提供這樣的選擇就剝奪了使用者的主導權,很可能使使用者無法舒適地閱讀。 </p> <p> 親和力指的並不只是關於盲人和螢幕助讀程式。還有許多人雖然不是盲人,但是有視力障礙 - 你我變老時就會成為他們的一員。 使網站變得更具親和力的一個最簡單的方法就是允許使用者改變文字大小;拒絕提供這樣的選擇就剝奪了使用者的主導權,很可能使使用者無法舒適地閱讀。 </p> <p> 如果設計者使用像素為單位指定文字大小,大多數的使用者將無法縮放文字,因為 Internet Explorer 改變文字大小的方式與別的瀏覽器不同。Mozilla 和 Opera 可以縮放已經設定像素大小的文字,而Windows 下的IE卻不能。 </p> <p> 親和力指的並不只是關於盲人和螢幕助讀程式。還有許多人雖然不是盲人,但是有視力障礙 - 你我變老時就會成為他們的一員。 使網站變得更具親和力的一個最簡單的方法就是允許使用者改變文字大小;拒絕提供這樣的選擇就剝奪了使用者的主導權,很可能使使用者無法舒適地閱讀。 </p> <p> 如果設計者使用像素為單位指定文字大小,大多數的使用者將無法縮放文字,因為 Internet Explorer 改變文字大小的方式與別的瀏覽器不同。Mozilla 和 Opera 可以縮放已經設定像素大小的文字,而Windows 下的IE卻不能。 </p> <p> 親和力指的並不只是關於盲人和螢幕助讀程式。還有許多人雖然不是盲人,但是有視力障礙 - 你我變老時就會成為他們的一員。 使網站變得更具親和力的一個最簡單的方法就是允許使用者改變文字大小;拒絕提供這樣的選擇就剝奪了使用者的主導權,很可能使使用者無法舒適地閱讀。 </p> <h5>僅供示範 Back</h5> </body> </html>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]