自动调整分辨率

曾发过一篇博文“根据客户端分辨率改变图像大小的JS脚本”,介绍一个简单的图像大小自适应的例子。事实上,如何兼顾不同分辨率下用户的浏览效果,一直是web程序员头痛的问题之一。


  目前,大部分用户的浏览器分辨率为800px*600px和1024px*768px,极少数为 640px*480px,当然,1280px*1024px(偶目前的)及更高的分辨率,将逐步成为主流。就用户的使用习惯而言,纵向滚动是很自然的,但横向滚动,就让人恼火了。所以,当前的大部分web页面设计,均采用800px宽度居中的形式来设计。这样的好处无疑是很明显的,较好的兼容性,无横向滚动,并且由于固定大小,界面可以设计得很美观。

  但是,固定宽度大小(800px)的设计,是不得已而为止的办法。在1280px*1024分辨率下,800px宽度的页面就像一根小棍子立在屏幕中间,内容全部挤在一起,看起来很痛苦,而且,浪费了极大的屏幕空间。那么,设计可根据用户分辨率自动调整宽度的网页,应该是个更好的选择。

  在最近的网站升级中,这方面的工作纳入日程,以下是一个简单但完备的页面例子。
Html代码
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<meta name="Security" content="public" />
<meta name="DC.Rights" content="Copyright (c) 2007 by Johnson Zhong" />
<meta name="KEYWords" contect="xhtml sample" />
<meta name="DEscription" contect="xhtml sample" />
<meta name="Author" contect="Johnson Zhong" />
<meta name="Robots" contect="all" />
<style type="text/css">
BODY{
MARGIN: 0px;
}
#wrap {
PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ffffff; PADDING-BOTTOM: 10px; OVERFLOW: hidden; WIDTH: expression(this.offsetParent.clientWidth<800?"770px":"99%"); PADDING-TOP: 2px; min-width: 770px
}
#main {
CLEAR: both; BACKGROUND: #fff; MARGIN-TOP: 6px;
}
#leftbar {
BORDER-RIGHT: #dddddd 1px solid; BORDER-LEFT: #dddddd 1px solid; BORDER-TOP: #dddddd 1px solid; BORDER-BOTTOM: #dddddd 1px solid; BACKGROUND: #F2F9DC; FLOAT: left; PADDING-BOTTOM: 5px; WIDTH: 188px; height:100%
}
#cenbar {
FLOAT: left; PADDING-BOTTOM: 10px; WIDTH: 100%;
}
#sublogopanel {
CLEAR: both; width:100%; height:80px; position:relative; BACKGROUND: url(/_img/ad-bg.jpg) repeat-y left;
}
#rightbar {
FLOAT: left; PADDING-BOTTOM: 10px; OVERFLOW: hidden; WIDTH: 180px; margin-left:0px; margin-top:0px; background:#cccccc
}
</style>
<title>xhtml sample!</title>
</head>
<body>
<!--body层开始-->
<div id="wrap">
<div id="main">
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="188" height="100%" valign="top">
<!--左边-->
<div id="leftbar">
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="72" valign="top"> </td>
</tr>
</table>
</div>
<!--左边结束-->
</td>
<td width="100%" valign="top">
<!--中间内容-->
<div id="cenbar">
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%">
<div id="sublogopanel">
<img height="80" width="388" src="/_img/sublogo_esource.jpg">
</div>
</td>
</tr>
</table>
</div>
<!--中间内容结束-->
</td>
<td width="180" valign="top">
<!--右边-->
<div id="rightbar">
<table width="100%" height="72">
<tr>
<td width="180" height="1">
</td>
</tr>
</table>
</div>
<!--右边结束-->
</td>
</tr>
</table>
</div>
</div>
</body>
</html>

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<meta name="Security" content="public" />
<meta name="DC.Rights" content="Copyright (c) 2007 by Johnson Zhong" />
<meta name="KEYWords" contect="xhtml sample" />
<meta name="DEscription" contect="xhtml sample" />
<meta name="Author" contect="Johnson Zhong" />
<meta name="Robots" contect="all" />
<style type="text/css">
BODY{
MARGIN: 0px;
}
#wrap {
PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #ffffff; PADDING-BOTTOM: 10px; OVERFLOW: hidden; WIDTH: expression(this.offsetParent.clientWidth<800?"770px":"99%"); PADDING-TOP: 2px; min-width: 770px
}
#main {
CLEAR: both; BACKGROUND: #fff; MARGIN-TOP: 6px;
}
#leftbar {
BORDER-RIGHT: #dddddd 1px solid; BORDER-LEFT: #dddddd 1px solid; BORDER-TOP: #dddddd 1px solid; BORDER-BOTTOM: #dddddd 1px solid; BACKGROUND: #F2F9DC; FLOAT: left; PADDING-BOTTOM: 5px; WIDTH: 188px; height:100%
}
#cenbar {
FLOAT: left; PADDING-BOTTOM: 10px; WIDTH: 100%;
}
#sublogopanel {
CLEAR: both; width:100%; height:80px; position:relative; BACKGROUND: url(/_img/ad-bg.jpg) repeat-y left;
}
#rightbar {
FLOAT: left; PADDING-BOTTOM: 10px; OVERFLOW: hidden; WIDTH: 180px; margin-left:0px; margin-top:0px; background:#cccccc
}
</style>
<title>xhtml sample!</title>
</head>
<body>
<!--body层开始-->
<div id="wrap">
<div id="main">
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="188" height="100%" valign="top">
<!--左边-->
<div id="leftbar">
<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td height="72" valign="top"> </td>
</tr>
</table>
</div>
<!--左边结束-->
</td>
<td width="100%" valign="top">
<!--中间内容-->
<div id="cenbar">
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%">
<div id="sublogopanel">
<img height="80" width="388" src="/_img/sublogo_esource.jpg">
</div>
</td>
</tr>
</table>
</div>
<!--中间内容结束-->
</td>
<td width="180" valign="top">
<!--右边-->
<div id="rightbar">
<table width="100%" height="72">
<tr>
<td width="180" height="1">
</td>
</tr>
</table>
</div>
<!--右边结束-->
</td>
</tr>
</table>
</div>
</div>
</body>
</html>

以上代码中,将页面树向分为三栏,其中左右栏宽度固定,中间栏宽度自动调整。


加红的两处地方比较关键,第一处:

WIDTH: expression(this.offsetParent.clientWidth<800?"770px":"99%");

  通过在CSS样式表中应用javascript判断:如果当前窗口宽度小于800,则页面宽度为770px,否则为当前窗口宽度*99%;



<img height="80" width="388" src="/_img/sublogo_esource.jpg">


  在中间层插入一张图片,确保当用户窗口宽度小于800时候,页面宽度不在缩小
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值