网页设计 自适应客户端分辨率的实现

2016-02-19 13:30 6 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐网页设计 自适应客户端分辨率的实现,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

第一种方法:做一个网页解决问题(长了点)

  如果只是因为浏览者改变了浏览器的设置,或者因为浏览器不兼容,使自己精心制作的网页变得"面目全非",那多令人沮丧!下面我们以网页爱好者的常用工具Dreamweaver(以下简称DW)为例,列出几个网页制作初学者较常见的网页布局问题以及解决方法,希望对初学者们有所帮助。
  一、消除任意缩放浏览器窗口对网页的影响

  一番辛苦做出来的网页,在全屏状态下浏览一切正常。但在改变浏览窗口大小之后,网页就变得"不堪入目"了,这是个很值得注意的问题。

  问题的根源还得从网页的布局说起,在DW中,网页内容的定位一般是通过表格来实现的,解决表格的问题也就成功了大半。

  大家应该注意到,在DW中表格属性面板的高宽设定选择上提供了两种不同类型:百分比和像素值。百分比的使用将会产生前面说到的那个毛病。这里所说的百分比是指表格的高或宽设置为上层标记所占区域高或宽的百分比,如在一个表格单元的宽度是600,在它里面嵌入了另外一个表格,表格宽度占表格单元的50%,则这个表格的宽度为300,依此类推,如果在一个表格不是嵌于另一个表格单元中,则其百分比是相对于当时窗口的宽度的。IE浏览器中,随便改动主页窗口的大小时,表格的内容也随之错位、变形,就是因为表格的百分比也要随着窗口的大小而改变成相应的百分比宽度。

  自然,解决这个问题的办法就是将表格宽度设置成固定宽度(也就是像素值)。另外如果外层表格已做好固定宽度设置,内层表格也可以适当使用百分比设置。清楚这个原则以后,如果出现类似的问题大家也知道怎么解决。

  二、让网页居中

  说到了窗口大小就会顺着路子想到分辨率的问题,在800×600分辨率下制作的网页在1024×768分辨率的机器上打开,整个网页就会跑到左边;1024×768分辨率的网页在800×600分辨率的机器上有时也会变得"不堪入目"。两种分辨率各做一个吧?做起来费时,看起来也费劲。怎么办呢?

  现在大多数网民都还在用800*600的分辨率,所以我们一般可以以此分辨率为主,要想让网页在1024*768时居中,只要在网页原代码的body后紧加一句center,/body前加一句/center就OK了。不过有几个问题这是要注意一下,第一个就是上面说到的百分比的问题,表格、单元格的宽度单位最好要使用像素单位,而不要用百分比。例如width=770。如果你的表格宽度设的是百分比,那么使用大于800×600的像素时,网页就会拉宽,这样网页可能会变形。在body中加入leftmargin=0,即body leftmargin=0这种情况下,800×600支持的表格宽度为780像素时不会出现滚动条。还有一点要注意的是不能用DW中的层来定位。

  html
  head/head
  body topmargin=0 leftmargin=0
  center
    table cellspacing cellpadding width=760trtd/td/tr/table
  /center
  /body
  /html

  三、定义固定大小的文字

  大家都知道,在IE浏览器的功能设置中,有一个可以自由设置窗口内容字体大小的功能,这样由于不同访问者的设置习惯不同,呈现在他们面前的网页有时也会不不相同。比如你可能本来设计时用的是2号字体,结果由于用户对浏览器的额外设定,变的更大了,这时你的网页也可能变得"不堪入目"。虽然不是你的错,但客户是上帝。

  如果使用了网页中的CSS样式表技术,就不会出现上述情况了。使用快捷键"Shift+F11"打开样式表"CSS style"编辑器,在窗口中单击鼠标右键执行"New CSS style..."命令新建一个样式表,然后在给出的列表中选择"类型"选项,定义文字属性参数(一般文字的大小选择12px较为适宜)。完成后选择网页编辑窗中的文本,单击新的样式表名称,可以看到选中的文本发生了变化。预览时试试定义的文本字体尺寸还会不会随浏览器的选择字体大小而改变。

  四、让网页适应不同的浏览器

  浏览器的格局现在是两分天下,一分是IE,另一分是NetScape,在国内Ie有绝对的占有率,在这种情况下我们设计的网页只要兼容它就行了,但NetScape在国外还是有很多人使用,毕竟它是浏览器的元老。

  虽然没有办法做出让所有浏览器都兼容的网站,但只要注意以下几点,做出来的网页在各个浏览器都中能达到比较好的显示效果:

  不要混合使用层和表格排版,如果是父子关系,如层中表格,不在此原则范围内。

  内联式的 CSS 在 Netscape Navigator 中经常会出现问题,使用链式或内嵌式。

  有时需要在空层插入表格或者透明图片,以保证在 Netscape Navigator 里的效果。

  对于只有几个像素宽度或高度的层,改用图片来实现。

  避免使用 W3C 组织不推荐的排版属性,用 CSS 代替。




  第二种方法:做两个适合不同分辨率的页面   一个是800×600,一个是1024×768,在800×600的页面中加入一下代码就可以实现跳转了:

  ---------------------------------------------------------------

 解决分辨率问题在Dreamweaver中没有此项功能,我们只能手动加入一段Javascript代码。首先在change-ie.html或change-nc.html页面代码中的 head和 /head中加入以下代码:



 script language=JavaScript
 !--
 function redirectPage(){
 var url800x600=〃index-ie.html〃; //定义两个页面,此处假设index-ex.html和1024-ie.html同change-ie.html在同一个目录下
 var url1024x768=〃1024-ie.html〃;
 if ((screen.width==800) && (screen.height==600)) //在此处添加screen.width、screen.height的值可以检测更多的分辨率
 window.location.href= url800x600;
 else if ((screen.width==1024) && (screen.height==768))
 window.location.href=url1024x768;
 else window.location.href=url800x600;
 }
 // --
 /script
 然后再在 body…内加入onLoad=〃redirectPage()〃
 最后,同样地,在 body和 /body之间加入以下代码来显示网页的工作信息:
 script language=JavaScript
 !--
 var w=screen.width
 var h=screen.height
 document.write(〃系统已检测到您的分辨率为:〃);
 document.write(〃 font size=3 color=red〃);
 document.write(w+〃×〃+h);
 document.write(〃 /font〃);
 document.write(〃正在进入页面转换,请稍候…〃);
 // --
 /script

来源:https://www.tulaoshi.com/n/20160219/1604520.html

延伸阅读
综合了爱疯、安卓、疯7的交互原则,适用于移动设备,比如其中的按钮尺寸、视觉大小、触控大小,唯一遗憾的是,没把字体的设计原则列进去。不过一般来讲以12Px作为基本字体大小,小号可以小至8Px,当然你也可以以14Px做基本字体,但如果以11Px字体做基本字体,可能太小,看着就会比较累。最大多少号,倒没关系,依据视觉美感来定。教你一个最笨的...
标签: Web开发
!-- +++++++++++++++++检测屏幕分辨率++++++++++++++++++++++++++  --
随着悄悄散去的新年硝烟,又投入到新一年的工作中。大家在漫天纷飞的红包中抽到奖品了吗?(你懂的) 不过回想春节,或许在家中吃喝玩乐的优哉游哉,或者在途中跋山涉水的观风问俗。但与此同时,大家的慧眼有没有注意到新浪微博有了哪些视觉变化,手机app有了哪些更新呢? 当然。大家的眼睛是满血的。相信大家打开微博app后,是一幅回家团圆的剪...
标签: Web开发
最近一直在开发Ajax应用程序。众所周知Ajax的特点是客户端和服务器分离,客户端通常由纯Javascript组成,通过XMLHttpRequest对象与服务器通信。在调试客户端代码时,如果服务器开在本地,尚可通过samba等方式直接编辑服务器上的客户端js代码,倘若服务器在异地,那么每次修改js代码后通过FTP等方式上传之后再调试就十分费事。说到这里自然会...
本实例演示如何在程序中动态修改屏幕的分辨率,并且不需要重新启动计算机就可以生效。 向窗体上添加两个Button控件,设计完成的主界面如图1所示。 图1 主界面 在程序中添加一个自定义函数DynamicResolution,它有两个参数,分别对应于水平和垂直方向的分辨率,并且该函数有一个BOOL类型的返回值,通过判断返回值可以判断Dyna...

经验教程

365

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部