- 浏览: 155122 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (137)
- JavaScript (23)
- get post (0)
- SSH (4)
- Hibernate (1)
- cmd (2)
- 火狐 IE (1)
- 中英文环境模板下载 (1)
- 日期 (0)
- 其他总结 (5)
- 正则校验 (3)
- Sql Server (0)
- FreeMarker (1)
- 继承 (1)
- SQL (2)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (1)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (0)
- 解决int和Integer不能互转 (0)
- 原子类 (1)
- Final,finally,finalize的区别 (1)
- Web前端 (12)
- Reader InputStream (1)
- 线程 (1)
- JDBC (1)
- AJAX (3)
- Linux (2)
- 素数 (1)
- 接口-----继承 (1)
- 数据库查询性能优化 (1)
- Spring MVC3 深入了解 (1)
- JS (18)
- log4j简介 (1)
- Java序列化的机制和原理 (0)
- allowTransparency属性 (1)
- 测试类 (1)
- CSS (14)
- JQuery (10)
- 多线程 (1)
- 数据库 (2)
- Spring 注解 (1)
- JSTL标签库 (1)
- HTML (8)
- 界面设计 (4)
- 测试 (4)
- 职业生涯 (1)
- 数据可视化 (1)
- UI设计 (3)
- eclipse怎样生成javadoc (2)
- redis memcache 比较 (1)
- Windows 8系统IE10无法安装Flash Player插件的解决办法 (1)
- IE7 问题 (1)
- 常用JS验证 (1)
- Hadoop,MapReduce学习步骤 (1)
- 开始-运行-命令大全 (1)
- jQuery与ExtJS优缺点比较 (1)
- Oracle (1)
- 文档转换 (1)
- Maven与Ant比较 (1)
最新评论
-
谁说我不是会员:
很给力的文章,通俗易懂
Get请求和Post请求的区别 -
Spirit_eye:
请问一个图片按钮怎么置灰
按钮置灰跟按钮不显示
《弹性+固宽布局》
在当今用户的显示器越来越大的今天,之前的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
发表评论
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2014-05-06 11:07 352<meta name="viewport&qu ... -
web前端页面性能优化
2014-05-05 14:23 600web前端页面性能优化 ... -
在CSS中定义a:link、a:visited、a:hover、a:active顺序
2014-05-05 14:00 707http://blog.snsgou.com/post-2.h ... -
提高网站打开速度的7大秘籍
2014-04-25 11:11 549提高网站打开速度的7大秘籍 http://lusongs ... -
PNG8和PNG24的区别
2014-04-25 10:35 1058PNG8和PNG24的区别 内容图片的大小的优化,告诉大 ... -
web前端页面性能优化小结
2014-04-25 10:21 637web前端页面性能优化小 ... -
LABjs、RequireJS、SeaJS 哪个最好用?为什么?
2014-03-14 11:15 592LABjs、RequireJS、SeaJS 哪 ... -
CSS Sticky Footer: 完美的CSS绝对底部
2013-09-04 17:42 656CSS Sticky Footer: 完美的CSS绝对底部 ... -
流体布局
2013-09-04 11:53 686流体布局 在我的另一篇文章《弹性+固宽布局》http://li ... -
前端布局
2013-03-20 11:59 667网页布局; http://www.subcide.com ... -
Web前端
2012-11-06 15:57 657HTML5迟来的API:Page Visibility ... -
腾讯Web前端
2012-11-06 15:55 0日期格式化:System.out.println(new ...
相关推荐
8. **Flexbox布局**:使用弹性盒模型进行更加灵活的布局设计。 9. **Grid布局**:CSS Grid布局提供更高级的二维布局管理,适用于复杂的网页设计。 10. **动画效果**:在布局中加入过渡、动画效果,提升用户体验。 ...
本文将深入探讨流式布局、Flexbox弹性布局以及Less+REM+媒体查询布局策略,这些都是现代移动Web开发的关键知识点。 首先,我们来了解流式布局。流式布局是一种基于百分比宽度的布局方式,它允许网页内容根据浏览器...
8. **Flexbox布局**:现代CSS布局模型,能够轻松处理各种复杂的弹性布局,如居中对齐、自适应高度等。 9. **Grid布局**:CSS Grid提供二维布局,可以方便地创建复杂的、响应式的网格系统。 通过实践这些例子,初学...
浮动(float)、定位(positioning)和Flexbox(弹性盒子布局)是CSS中用于布局的三大核心技术,它们分别适用于不同类型的布局需求。 在本书的30个案例中,读者可以学习到如何运用这些技术来创建各种常见的网页布局...
7. **Flexbox(弹性盒布局)**:虽然不是`DIV+CSS`的原始部分,但Flexbox是现代CSS布局的重要工具,特别适合处理单行或单列的复杂布局。它允许父元素调整其子元素的宽度、高度和顺序,以最好地填充可用空间。 8. **...
4. **Flex布局**:弹性盒布局,适用于一维布局,允许元素在容器内灵活伸缩。 5. **CSS Grid & Flexbox结合**:两者结合使用,可构建复杂的响应式布局。 **五、DIV+CSS布局技巧** 1. **浮动布局**:使用`float`属性...
6. **Flexbox布局**:弹性盒模型(Flexbox)是现代CSS布局的一个重要工具,适用于单一维度的布局(如行或列)。它简化了对元素的对齐、排序和分配空间的操作,尤其适合响应式设计。 7. **Grid布局**:CSS网格布局...
4. **Flexbox布局**:现代浏览器支持的Flexbox(弹性盒模型)为`div+css`布局提供了一种更为灵活的方法。通过设置`display: flex`,可以轻松实现一维布局(行或列),并调整元素的顺序、大小和对齐方式。 5. **Grid...
在学习Div+CSS布局时,你需要理解每个布局模式的工作原理,熟练运用选择器来选中和操作元素,以及熟悉各种CSS属性,如边距、填充、宽高、背景、文字样式等。此外,了解盒模型(Box Model)和响应式设计(Responsive ...
此外,`flexbox`(弹性盒布局)和`grid`(网格布局)是`CSS3`引入的现代布局模式,提供了更强大和灵活的布局解决方案。`flexbox`主要用于单行或单列布局,可以轻松实现对齐、自适应和弹性伸缩。而`grid`布局则更适合...
CSS3引入了Flexbox(弹性盒模型),它提供了一种更现代、更强大的布局方式,能轻松处理单轴布局,如行或列。Flexbox解决了浮动布局的一些问题,并支持元素的对齐、填充和自动调整大小。 8. **Grid布局**: CSS ...
3. 绝对定位居中:对于未知宽高的元素,可以使用绝对定位配合`transform`实现居中: ```css .centered { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } ``` 4. 弹性盒模型居中...
在前端开发中,布局设计是至关重要的,而“DIV+CSS之弹性盒模型布局”是一种高效且灵活的网页布局方式。这种布局模式充分利用了CSS3中的Flexbox(弹性盒模型)特性,使得开发者可以轻松应对各种复杂的网页布局需求,...
Flexbox用于一维布局(行或列),适合处理元素的对齐、顺序和弹性伸缩,而Grid则提供了二维布局的能力,让复杂的网格系统设计变得简单。 总的来说,《DIV+CSS完美布局》是一本全面介绍网页布局技术的教程,无论你是...
在网页布局中,CSS提供了多种布局模式,如**流体布局**(基于百分比的宽度,使页面能够自适应不同屏幕尺寸)、**网格布局**(通过定义行和列创建可重复的单元格布局)、**弹性布局**(Flexbox,用于处理一维布局,如...
4. **Flex布局**:Flexbox(弹性盒布局)是另一种强大的布局模型,适用于一维布局,如导航栏、列表等。通过`display: flex;`开启容器的弹性布局,`flex-direction`定义主轴方向,`justify-content`和`align-items`...
10. **Flexbox布局**:利用CSS3的Flexbox模型,实现灵活的、响应式的布局,可以轻松处理对齐、顺序和弹性伸缩。 通过研究这些模版,开发者不仅可以学习到基本的布局技巧,还能了解如何优化用户体验,提升网页的可...
对弹性布局的简单设置以及实例,其中有主轴的设置, 以及属性值 对弹性布局的简单设置以及实例,其中有主轴的设置, 以及属性值 对弹性布局的简单设置以及实例,其中有主轴的设置, 以及属性值 对弹性布局的简单设置以及...