`
linhui_dragon
  • 浏览: 159080 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

《弹性+固宽布局》

 
阅读更多
《弹性+固宽布局》


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

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

这里所说有弹性,指的是背景去自适应屏幕宽度,而固宽呢,则是让正文内容无论在宽屏还是窄屏中都能自动居中。夹缝中求生存,以满足不同大小分辩率用户的需要。如下图所示的设计就是一个典型的样例。C:\Users\user\Desktop\图片\iteye.gif 参考页脚图片附件
废话少说,言归正传,我们就来制作一个这样的布局结构:
首先构建结构层:
<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绝对底部》来自:http://www.cnblogs.com/binyong/archive/2009/02/21/1395594.html。

我们将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时只显示了一小块,而正文内容始终居中显示的。

为了演示效果,我们加入一些其它颜色调置,最后的样式如下所示:
*{margin:0;padding:0;}

html, body, #wrapper {height: 100%;font-size:12px;}

#wrapper{width:100%;background:#777;}

body > #wrapper {height:auto; min-height:100%;}

#main {padding-bottom: 54px;min-width:960px;}/* 必须使用和footer相同的高度,最小宽度ie6中加JS解决 */

#header{text-align:center;color:#fff;background:#333;}

#inheader{width:960px;height:110px;line-height:110px;margin:0 auto;background:#CC9933;}

h3{font-size:14px;line-height:50px;}

#inheader p{font-size:12px;line-height:30px;}

#footer {

    position: relative;

    margin-top: -54px; /* footer高度的负值 */

    height: 54px;/* footer高度*/    

    width:100%;

    min-width:960px;/*最小宽度ie6中加JS解决*/

    clear:both;

    background:#666;

    text-align:center;

    color:#fff;

}

#infoot{height:54px;line-height:54px;width:960px;margin:0 auto;background:#CC9966;}

#footer p{line-height:26px;}

#content{background:#999;width:960px;margin:0 auto;height:692px;}

#content p{line-height:30px;padding:0 30px;color:#fff;}

/*说明: 需要注意的就是#main的padding值、footer的高度和负margin值,需要保持一致。下面是著名的万能float闭合Clearfix Hack*/

.clearfix:after {

content: ".";

display: block;

height: 0;

clear: both;

visibility: hidden;}

.clearfix {display: inline-block;}

/* Hides from IE-mac \*/

* html .clearfix { height: 1%;}

.clearfix {display: block;}

/* End hide from IE-mac */


整体代码

<!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=utf-8" />
<title>弹性+固宽布局设计</title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
<style type="text/css">
/*本例中运用到一个永远固定到页脚的footer容器,这个层是独立于主内容区的.*/
*{margin:0;padding:0;}
html, body, #wrapper {height: 100%;font-size:12px;}
#wrapper{width:100%;background:#777;}
body > #wrapper {height:auto; min-height:100%;}
#main {padding-bottom: 54px;min-width:960px;}/* 必须使用和footer相同的高度,最小宽度ie6中加JS解决 */
#header{text-align:center;color:#fff;background:#333;}
#inheader{width:960px;height:110px;line-height:110px;margin:0 auto;background:#CC9933;}
h3{font-size:14px;line-height:50px;}
#inheader p{font-size:12px;line-height:30px;}
#footer {
position: relative;
margin-top: -54px; /* footer高度的负值 */
height: 54px;/* footer高度*/
width:100%;
min-width:960px;/*最小宽度ie6中加JS解决*/
clear:both;
background:#666;
text-align:center;
color:#fff;
}
#infoot{height:54px;line-height:54px;width:960px;margin:0 auto;background:#CC9966;}
#footer p{line-height:26px;}
#content{background:#999;width:960px;margin:0 auto;height:692px;}
#content p{line-height:30px;padding:0 30px;color:#fff;}
/*说明: 需要注意的就是#main的padding值、footer的高度和负margin值,需要保持一致。下面是著名的万能float闭合Clearfix Hack*/
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;}
.clearfix {display: inline-block;}
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */
</style>
</head>
<body>
<div id="wrapper">
<div id="main" class="clearfix">
<div id="header">
<div id="inheader">
<h3>弹性+固宽布局设计(适合宽屏和大背景布局)</h3>
<p>页头背景可平铺整个浏览器宽度,而正文内容则始终居中显示,不管分辩率是多大。</p>
</div>
</div>
<div id="content">
<p> </p>
<p>正文内容背景可平铺整个浏览器宽度,你可以在body中加入一张超大的背景图片,并设置图片为居中。而正文内容则始终居中显示,不管分辩率是多大。当你分辩率超过1024时,在正文内容的两侧会出现图片,使宽屏的内容区两侧不显得空洞。</p>
</div>
</div>
</div>
<div id="footer">
<div id="infoot">
<p>我是浮动的始终固定在底部的DIV,无论中间的文字内容高度是否不够一屏,我还是能居底显示,</p>
<p>当中间内容超过一屏时,我又可以向下浮动哟</p>
</div>
</div>
</body>
</html>



转自:http://www.cnblogs.com/binyong/archive/2009/05/07/1451319.html
  • 大小: 78.4 KB
分享到:
评论

相关推荐

    移动web和响应式第2天课堂笔记1

    `,这是Flexbox布局的早期实现,用于创建弹性容器。 CSS3的`box-sizing:border-box;`是一个新的盒模型,它改变了元素的宽高计算方式,使得边框和内填充被包含在设定的宽度和高度之内,而不是额外增加总尺寸。这对于...

    渣浆泵的几项应用措施.rar

    - **宽流道设计**:设计宽大的流道,减少固体颗粒对泵内部的磨损。 - **扭曲叶片**:采用扭曲叶片设计,优化浆体流动,降低能耗和磨损。 4. **固液分离**: - **预处理**:在进入渣浆泵前,可以设置固液分离设备...

    MiniLED 产业链全景解析.pdf

    在2021年,随着终端厂商的加速布局和产业链的持续加码,MiniLED技术迎来了商用元年,预计在未来几年将催生一系列投资机会。 MiniLED产业链可以分为三个部分:上游(外延片+芯片)、中游制造(封装+模组)以及下游...

    笔记本电脑采购十项注意.doc

    键盘的弹性也很关键,个人喜好各异,最好亲自试用以确定舒适度。 5. **造型设计**:笔记本的外观设计反映了个人品味。虽然性价比和价格是重要因素,但最终选择的电脑应是你自己喜欢并愿意长期使用的。时尚设计的...

    园林绿化景观施工组织设计-某篮球场工程施工方案

    2. **设计规划**:篮球场的布局应考虑运动功能、安全性和美观性。景观设计包括植物配置、硬质景观(如路径、座椅、围栏)以及照明系统。同时,篮球场的尺寸需遵循国际篮联(FIBA)的标准,通常为28米长,15米宽。 3...

    路基沉降计算小软件

    软件的界面布局考虑到了用户的工作习惯,将必要的数据输入项以清晰的逻辑顺序排列,使得工程师即便面对复杂的计算任务,也能够迅速完成数据的输入。此外,软件的操作按钮和功能提示都十分直观,有助于降低学习成本,...

    MASTERO例程

    定义约束条件是指为模型设定边界条件,例如固定点、铰接点等,这对于后续的力学分析至关重要。 #### 十三、创建载荷工况 创建载荷工况是指定义作用在结构上的各种载荷及其组合方式,这是进行结构分析的前提条件。 ...

    行业文档-设计装置-教学示范毛笔.zip

    而兔毛笔头则介于两者之间,具有一定的弹性与吸水性,适合书写刚柔并济的笔画。这些材料的选择与搭配,都需要设计师根据不同的使用需求精心考量,以确保毛笔能够满足书写者对于艺术表达的追求。 笔杆作为毛笔的重要...

    第十一届 MathorCup C题优秀论文1.pdf

    - **线性规划模型**:在最大散热功率和集装箱尺寸两个限制条件下,分别计算在三种不同摆放方式(长宽面、长高面、宽高面平行于集装箱底面)下能放入的最多服务器数量。 **结论**:单个集装箱内可摆放的最大服务器...

Global site tag (gtag.js) - Google Analytics