當我們讓div居中時候,一般有兩種方法,一種是固定左右寬度,也就是使用像素絕對定位;另一種是用百分比來相對定位,在這種兩種方式下,絕對定位是不能讓div隨著屏幕而自適應的,而用百分比就可以,但是,是用百分比就會有一個新的問題,如果我們的頁面中有這么一句
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "的時候,top的百分比將會失效,而刪除這句話的時候,一切正常,都是不知道這句標準的聲明為什么會帶來如此的不便
針對這個問題,我使用的下面的方法來實現(xiàn)div的自適應
首先 我用的是絕對定位的方式,先設置好div的左右上下邊距。在body中添加兩個事件,
<body bgcolor="#666666" onresize="test()" onload="getwah()">
getwah()用來獲取屏幕的大小和div的各個邊距,并計算出它們的差
復制代碼 代碼如下:
var height,width,width_cha1,width_cha2;
function getwah()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
width=parseInt(d_width);
width_cha1=width-parseInt(document.getElementById("backi").style.left)
width_cha2=width-parseInt(document.getElementById("massage_box").style.left)
}
當屏幕大小變化的時候(onresize)觸發(fā)test()函數(shù),該函數(shù)就是用戶根據(jù)之前獲得屏幕與邊距的差值重新設置div的邊距,這樣就可以實現(xiàn)黨屏幕的大小改變后,div的邊距也會相應地改變,從而實現(xiàn)div可以隨著屏幕大小的改變而自適應
復制代碼 代碼如下:
function test()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
var now_left1=parseInt(d_width )-width_cha1;
var now_left2=parseInt(d_width )-width_cha2;
document.getElementById("backi").style.left=now_left1
document.getElementById("massage_box").style.left=now_left2
}
該文章在 2010/11/25 23:15:29 編輯過