分类：电脑/网络-互联网
问题：为什么我的网站在不同的各种分辨率之下不能正常显示呢？ 
回答：在不同分辨率下看到的网页版面格式有很大差别，甚至有可能错位。导致这种差别的原因，主要是因为网页中用了绝对定位的层，并且页面内容设置为居中，这样在分辨率改变时就会导致错位。因此我们可以通过判断用户的分辨率，然后让页面或排版做出相应变化。 方法一：做为不同的分辨率做不同的页，然后做个引导页，获取到客户端屏幕的分辨率后转向到相应页 具体步骤： 1. 先捕获用户的分辨率。 水平分辨率：screen.width 垂直分辨率：screen.height 2.再用页面跳转的方法转到相应页。  place(screen.width+".htm") 或者：  place(screen.height+".htm") 3.完整代码。 <script language="JavaScript"> <!--  place(screen.width+".htm"); //--> </script> 技巧：screen.width 也可以改成 screen.availWidth。 提示： l language="JavaScript" 指定脚本所用语言为 JavaScript,大部分浏览器的默认客户端脚本语言就是 JavaScript，所以也可以省略不写。 l <!-- 和 //--> 两个标识的作用是通知不支持 JavaScript 浏览器忽略两标识间的所有 JavaScript 代码，一般情况下可以省略不写。 l JavaScript 语句与 C 语言一样用分号”;”结束，但也可以省略不写，每一新行表示开始一条新语句。 l screen.width+".htm" 在进行字符串连接后得到诸如  m， m 之类的文件名。 l 可以在把完整代码存成单独一页作为引导页。 试一试：读者可以试着用assign方法实现页面跳转。 方法二：根据显示区域宽度重新调整层的定位。 具体步骤： 1. 获取文档显示区域的宽度。  dy.offsetWidth 2.判断对象是否为层。 function isLayer(obj){ with( rrentStyle) return (position=="absolute"&&left!="") } 3.完整代码。 <script language="JavaScript"> <!-- function isLayer(obj){ //判断对象是否为层的函数 /*不用 style 而用 currentStyle 的原因是因为有些层不是直接在标签内写 CSS 的，这时用 style 取不到值*/ with( rrentStyle) //返回布尔值true或false return (position=="absolute"&&left!="") } //800为800X600分辨率下窗口最大化时 dy.offsetWidth的值 var iWidth=800 window.onload=function init(){ //匹配页面中所有标签名为DIV元素，以数组形式返回对象 var divs= tElementsByTagName("DIV") for(var i=0;i<divs.length;i++)//遍历所有DIV标签 if(isLayer(divs[i]))//判断对象是否为层，是则调整它的 X 坐标 divs[i].runtimeStyle.posLeft=parseInt(divs[i].currentStyle.left)+( dy.offsetWidth-iWidth)/2 iWidth= dy.offsetWidth //保存当前文档显示区域的宽度 } //--> </script> <body onresize="init()"> <div id=demo style=" :50px; :200px; :1px solid #000">Layer1</div> <div id=demo1 style=" :250px; :200px; :1px solid #000">Layer2</div> 注意： l 必须确保所有层的标签为 DIV。 l 程序中的 demo 和 demo1 两个层只是测试用的，在实际就用时可以删掉。 技巧：如果所有层都是直接在标签内的定义的，可以把 currentStyle 和runtimeStyle 改成 style。 提示： l JavaScript 的单行注释是以一对正斜杠”//”开始，多行注释以一个正斜杠加一个星号的组合(/*)开始,并以其逆向顺序 (*/)结束。 l window.onload 表示在页面加载完成后触发。 l onresize="init()" 表示在窗口大小改变时触发名为 init 的函数。 分析：屏幕分辨率先是影响到文档显示区域宽度( dy.offsetWIdth)大小，然后文档显示区域宽度大小进一步影响到层的X轴定位和页面内容居中部分的相对位置，所以只要根据文档显示区域宽度大小来重新调整层的X轴坐标就行了。 特别提示 Javascript脚本的代码原则上是要求放在代码的 <head> 与 </head> 间，但放到其它标签窗口内也可以正常运行，方法二中代码运行后效果如图 3.1 和 3.2 所示： 图 3.1 窗口最大化时层的 图 3.2 窗口缩小后的层的位置 特别说明 方法一中用到了 location 对象的 replace 和 assign 方法来加载目标文档。 1. location对象的replace方法是将指定的文档替换当前文档。 2. location对象的assign方法是装入新的HTML文档。 方法二中用了 currentStyle、runtimeStyle 和 style 三个对象来捕获目标对象的样式设置。  rrentStyle对象代表在全局样式表、内嵌样式和HTML标签属性中指定的对象格式和样式。 ntimeStyle对象代表居于全局样式表、内嵌样式和HTML标签属性指定的格式和样式之上的对象的格式和样式。 yle对象代表给定元素所有可能的内嵌样式的当前设置