弹性+固宽布局

作者:by0001 来源:冰极峰博客 时间:2009-05-15 12:19:00 

在当今用户的显示器越来越大的今天,之前的1024*768固宽布局有点越来越不合时宜,对大屏幕的用户而言,两侧空空的留白给人第一眼的印象是严重的屏幕浪费,作为网页设计师的你有责任给这一批用户一个良好的用户界面。

当然为了减少这种屏幕的浪费,采用弹性流体布局是最好的解决方案,它可以充分利用屏幕空间,无论你是多大分辩率的用户,都能尽情满屏展示内容。然而因为种种限制,目前的网页完全采用流体弹性布局条件还不具备(特别是浏览器厂商对标准的肆意 * 以及CSS标准的不完全支持等等)。作为夹在用户和厂商的中间者,我们只能以一种兼容的心态去适应两者的差距。所以,作为一种过渡的解决方案,有了这样一种布局:弹性+固宽布局。

这里所说有弹性,指的是背景去自适应屏幕宽度,而固宽呢,则是让正文内容无论在宽屏还是窄屏中都能自动居中。夹缝中求生存,以满足不同大小分辩率用户的需要。如下图所示的设计就是一个典型的样例。

图一

废话少说,言归正传,我们就来制作一个这样的布局结构:

首先构建结构层:

<div id="wrapper">
    <div id="main" class="clearfix">
        <div id="header">
            <div id="inheader"></div>
        </div>
        <div id="content"></div>
    </div>
</div>
<div id="footer">
    <div id="infoot"></div>
</div>

分析一下结构层,一个网页一般包括页头,内容区和页脚三大部分,我们将页头和内容放在一个容器层,取名为wrapper,而将页脚独立出来,取名为footer,为什么要这样设计,我们想让这个页脚在内容区不满一屏的情况下也是绝对居底的。其具体的实现原理可以参考这篇文章:《CSS Sticky Footer: 完美的CSS绝对底部》。

我们将wrapper和footer这两个容器设置100%的宽度,让它自动适应屏幕的宽度。并且也将header页头区域也设置成100%宽度。这样我们可以在页头和页脚中插入一张可以水平平铺的图片,使页头和页脚的背景在大屏幕下能水平充满整个屏幕空间。

作为正文内容,我们一般的做法是,当分辩率变大,让它居中显示,两侧留出空白。因为页头区域已经设置为100%宽度,所以我们在header中再添加一个容器层inheader,它来作为真正的页头文字内容的载体,我们再给它设置一个固定的宽度值,比如是960像素宽,然后让它自动居中。

#inheader{width:960px;height:110px; margin:0 auto; }

这样页头的正文浮动haeader的上层,这两个层可以设置不同的背景图片,形成一个叠加的页头效果,它能自动适应更大的屏幕分辩率。

同样的道理,页脚也可以采用这种方法来实现。

在上面的结构层,我在中间内容区没有采用这种方法,而是做了一点变通,我们可以看到在content这个内容区中,没有内嵌一个容器,而只有一个容器。如果我们为了让正文内容的两侧在大分辩率下两侧不显得太空洞,该怎么办呢,当然你可以采用页头和页脚的做法,在它的内容再加一个div。当然为了减少嵌套,我们可以采用变通的办法。我们可以将一张超大的图片加在body中背景中,并用background-position来定位居中显示这张图片,这样在内容区两侧的图片就显示出来了。

本博客就是一个具体案例,在大分辩率下看看本博客两侧图片,然后缩小窗口,就可以看到两侧图片在1024*768时只显示了一小块,而正文内容始终居中显示的。

标签:布局,浏览器,兼容,分辨率
0
投稿

猜你喜欢

  • 使用HTML5中的canvas进行图形图像.游戏.动画开发时,不需要双缓冲机制

    2010-04-01 12:21:00
  • asp精妙的SQL语句例子

    2008-03-04 17:42:00
  • asp如何用SA-FileUp上传多个HTML文件?

    2010-05-18 18:27:00
  • border-radius与圆角

    2008-12-29 14:05:00
  • 让ASP组件来保护你的网站,自定义加密方法的使用

    2009-11-07 19:27:00
  • asp之自动闭合HTML/ubb标签函数 附简单注释

    2011-02-28 11:24:00
  • asp伪静态情况下实现的utf-8文件缓存实现代码

    2011-02-24 10:49:00
  • XML DOM介绍和例子

    2007-10-15 20:23:00
  • MySQL故障:mysqld-nt: Sort aborted错误的原因及解决办法

    2009-11-03 14:32:00
  • 用Javascript正则表达式验证Email地址

    2009-12-09 15:56:00
  • 三种不同方式连接MySQL数据库的方法及示例

    2010-06-11 13:37:00
  • 怎样缩小SQL Server数据库的日志文件

    2009-01-15 13:08:00
  • js游戏 俄罗斯方块 源代码

    2008-01-24 13:14:00
  • mysql 各种时间段查询

    2010-01-06 13:37:00
  • CSS 几条经典的 CSS Tips

    2008-08-20 18:40:00
  • asp如何生成XML数据

    2007-08-20 09:50:00
  • 快速掌握ASP连接11种数据库的常用语法

    2008-11-28 15:32:00
  • 网页设计中的层次感

    2007-11-05 18:19:00
  • 解析SQL Server与ASP互操作的时间处理

    2009-02-01 16:40:00
  • Opera下cloneNode的bug

    2007-11-23 11:40:00
  • asp之家 网络编程 m.aspxhome.com