日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

如何讓網(wǎng)頁自動適應(yīng)顯示器不同的“分辨率”

 海飄雪 2011-01-04

如何讓網(wǎng)頁自動適應(yīng)顯示器不同的“分辨率” [原文地址]

如何讓網(wǎng)頁適應(yīng)不同分辨率

解決思路:

在不同分辨率下看到的網(wǎng)頁版面格式有很大差別,甚至有可能錯位。導(dǎo)致這種差別的原因,主要是因為網(wǎng)頁中用了絕對定位的層,并且頁面內(nèi)容設(shè)置為居中,這樣在分辨率改變時就會導(dǎo)致錯位。因此我們可以通過判斷用戶的分辨率,然后讓頁面或排版做出相應(yīng)變化。

方法一:做為不同的分辨率做不同的頁,然后做個引導(dǎo)頁,獲取到客戶端屏幕的分辨率后轉(zhuǎn)向到相應(yīng)頁

具體步驟:

1. 先捕獲用戶的分辨率。

水平分辨率:screen.width
垂直分辨率:screen.height

2.再用頁面跳轉(zhuǎn)的方法轉(zhuǎn)到相應(yīng)頁。

location.replace(screen.width+".htm")

或者:

location.replace(screen.height+".htm")

3.完整代碼。

<script language="JavaScript">
<!--
location.replace(screen.width+".htm");
//-->
</script>

技巧:screen.width 也可以改成 screen.availWidth。
提示:
l language="JavaScript" 指定腳本所用語言為 JavaScript,大部分瀏覽器的默認(rèn)客戶端腳本語言就是 JavaScript,所以也可以省略不寫。
l <!-- 和 //--> 兩個標(biāo)識的作用是通知不支持 JavaScript 瀏覽器忽略兩標(biāo)識間的所有 JavaScript 代碼,一般情況下可以省略不寫。
l JavaScript 語句與 C 語言一樣用分號”;”結(jié)束,但也可以省略不寫,每一新行表示開始一條新語句。
l screen.width+".htm" 在進(jìn)行字符串連接后得到諸如 800.htm,1024.htm 之類的文件名。
l 可以在把完整代碼存成單獨一頁作為引導(dǎo)頁。
試一試:讀者可以試著用assign方法實現(xiàn)頁面跳轉(zhuǎn)。
方法二:根據(jù)文檔顯示區(qū)域?qū)挾戎匦抡{(diào)整層的定位。
具體步驟:
1. 獲取文檔顯示區(qū)域的寬度。

document.body.offsetWidth

2.判斷對象是否為層。

function isLayer(obj){
with(obj.currentStyle)
return (position=="absolute"&&left!="")
}

3.完整代碼。

<script language="JavaScript">
<!--
function isLayer(obj){ //判斷對象是否為層的函數(shù)
/*不用 style 而用 currentStyle 的原因是因為有些層不是直接在標(biāo)簽內(nèi)寫 CSS 的,這時用 style 取不到值*/
with(obj.currentStyle) //返回布爾值true或false
return (position=="absolute"&&left!="")
}
//800為800X600分辨率下窗口最大化時document.body.offsetWidth的值
var iWidth=800
window.onload=function init(){
//匹配頁面中所有標(biāo)簽名為DIV元素,以數(shù)組形式返回對象
var divs=document.getElementsByTagName("DIV")
for(var i=0;i<divs.length;i++)//遍歷所有DIV標(biāo)簽
if(isLayer(divs))//判斷對象是否為層,是則調(diào)整它的 X 坐標(biāo)
divs.runtimeStyle.posLeft=parseInt(divs.currentStyle.left)+(document.body.offsetWidth-iWidth)/2
iWidth=document.body.offsetWidth //保存當(dāng)前文檔顯示區(qū)域的寬度
}
//-->
</script>
<body onresize="init()">
<div id=demo style="position:absolute;left:50px;top:100px;width:200px;height:200px;border:1px solid #000">Layer1</div>
<div id=demo1 style="position:absolute;left:250px;top:50px;width:200px;height:200px;border:1px solid #000">Layer2</div>

注意:
l 必須確保所有層的標(biāo)簽為 DIV。
l 程序中的 demo 和 demo1 兩個層只是測試用的,在實際就用時可以刪掉。
技巧:如果所有層都是直接在標(biāo)簽內(nèi)的定義的,可以把 currentStyle 和runtimeStyle 改成 style。
提示:
l JavaScript 的單行注釋是以一對正斜杠”//”開始,多行注釋以一個正斜杠加一個星號的組合(/*)開始,并以其逆向順序 (*/)結(jié)束。
l window.onload 表示在頁面加載完成后觸發(fā)。
l onresize="init()" 表示在窗口大小改變時觸發(fā)名為 init 的函數(shù)。
分析:屏幕分辨率先是影響到文檔顯示區(qū)域?qū)挾?document.body.offsetWIdth)大小,然后文檔顯示區(qū)域?qū)挾却笮∵M(jìn)一步影響到層的X軸定位和頁面內(nèi)容居中部分的相對位置,所以只要根據(jù)文檔顯示區(qū)域?qū)挾却笮碇匦抡{(diào)整層的X軸坐標(biāo)就行了。
特別提示
Javascript腳本的代碼原則上是要求放在代碼的 <head> 與 </head> 間,但放到其它標(biāo)簽窗口內(nèi)也可以正常運行,方法二中代碼運行后效果如圖 3.1 和 3.2 所示:

圖 3.1 窗口最大化時層的

圖 3.2 窗口縮小后的層的位置

特別說明

方法一中用到了 location 對象的 replace 和 assign 方法來加載目標(biāo)文檔。
1. location對象的replace方法是將指定的文檔替換當(dāng)前文檔。
2. location對象的assign方法是裝入新的HTML文檔。
方法二中用了 currentStyle、runtimeStyle 和 style 三個對象來捕獲目標(biāo)對象的樣式設(shè)置。
1. currentStyle對象代表在全局樣式表、內(nèi)嵌樣式和 HTML 標(biāo)簽屬性中指定的對象格式和樣式。
2. runtimeStyle對象代表居于全局樣式表、內(nèi)嵌樣式和 HTML 標(biāo)簽屬性指定的格式和樣式之上的對象的格式和樣式。
3. style對象代表給定元素所有可能的內(nèi)嵌樣式的當(dāng)前設(shè)置

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多