用DIV+CSS实现国内经典式三行两列布局_第1页
用DIV+CSS实现国内经典式三行两列布局_第2页
用DIV+CSS实现国内经典式三行两列布局_第3页
用DIV+CSS实现国内经典式三行两列布局_第4页
用DIV+CSS实现国内经典式三行两列布局_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用DIV+CSS实现国内经典式三行两列布局很多的企业网站或其它小型的展示类网站,有一些共同的特点,即顶部放一个大的导航或BANNER,右侧是链接或图片,左侧放置内容,页面底部放置版权信息等。这样的形式是国内经典式的布局,我们这里不对它的视觉效果作过多的讨论,我们今天说说如何用DIV+CSS实现三行两列的布局。我们看下面的图片:这样的结构大家再熟悉不过了,我们该如何用DIV+CSS实现它呢。我们看下面的分析图片:它们相对应的关系如下:Example Source Code 顶部:header左侧:sidebar右侧:containe底部:footer主要区域:main这个main是起什么作用的呢。由于中间的sidebar、containe是两列并行的,我们需要设置浮动,让他们各就各位。但我们的整个页面是需要居中于浏览器窗口的。我们只能为他们设置一个容器main,让sidebar、containe在这一容器中浮动。不必考虑居中问题。而main就发挥了居中或设置背景的功能。思路已很清晰,我们开始整理HTML代码:Example Source Code header、main、footer是三个相对独立的层,而sidebar、containe是main层的子层。这里有一点需要说明,我们可以先写siderbar、也可以先写containe,通过浮动的设置,不管哪一个写在代码前部,所得到效果是一致的,我们可以通过让内容在前面的方式对搜索引擎更友好,如下代码:Example Source Code 我们开始写CSS,对上面的各元素进行样式表定义:Example Source Code *margin:0;padding:0;整体布局声明,边距与填充均为零。Example Source Code #headerwidth:776px;height:100px;margin:0auto;background:#06f;对header的定义:宽度为776px;高度为100px;上下边距为零,左右边距为自动,实现了水平居中对齐;背景色为蓝色#06f。Example Source Code #mainwidth:776px;margin:0auto;对main的定义:宽度为776px;上下边距为零,左右边距为自动,实现了水平居中对齐;无背景色等其它设置。Example Source Code #main#sidebarwidth:200px;float:left;background:#f93;对main的子层sidebar进行定义:宽度为200px;向左浮动;背景色为桔红色#f93。Example Source Code #main#containewidth:576px;float:right;background:#dceafc;对main的子层containe进行定义:宽度为576px(776-200);向右浮动;背景色为很淡的蓝色#dceafc。Example Source Code #footerwidth:776px;height:60px;margin:0auto;background:#666;对footer的定义:宽度与上面的一样为776px;高度为60px;上下边距为零,左右边距为自动,实现了水平居中对齐;背景色为深灰色#666。或许你认为我们对布局的CSS定义已经结束了,其实还存在着问题,为了方便预览,我们给sidebar、containe设置一个300px的高度,查看一下效果,如图:在IE中,一切正常,按预定的构思正常显示出来了,但在FF中,footer层消失了。这是因为FF不知道浮动以后发生的事情,不清楚main的高度为几何,因而它跑到上面去了,我们看不到它的存在。我们去除containe的背景色,FF中看到的是如下图的景象:我们应该在sidebar、containe结束的地方清除浮动,让FF知道如何处理footer层,而不是直接放到上面,在视觉上消失。我们在HTML中增加一个新层,位于sidebar、containe结束的地方:Example Source Code 我们定义clearfloat的样式为:Example Source Code #clearfloatclear:both;height:1px;overflow:hidden;margin-top:-1px;设置的意义是:clear:both;是指不允许左右有浮动对象;高度为1px;溢出为隐藏;顶边距为-1px,即这一层实际上是不可见的,仅为清除浮动之用。好了,现在基本上没有问题了,接下来就是在页面中设置菜单、添加内容并进行相应的样式定义。在用DIV+CSS实现三列式布局的时候遇到了困难,向网友求助。这一类上部形象及导航,底部为版权,中间区域分为三列的布局方式越来越广泛的应用。17英寸的显示器已经成为主流,我们以800*600分辨率作为网页的尺寸在某些时候已经不合时宜了,越来越多的客户及我们自身,要求我们制作的时候适应1024*768分辨率。宽度增加了,我们的内容区域划分也产生了一些变化,因而三列式布局的应用也越来越多了。我们今天来说说用DIV+CSS三列式布局的实现方法。首先我们构勒一个草图,理清一下思路。在实际操作中,你面对的可能不是草图,而是美工设计人员所设计的网站效果图,但大体上的结构是相当的,我们看下面的图片:这样的结构与两列式的布局是非常类似的,区别就是多了一列。(好象是废话,别扔臭鸡蛋!)我们将顶部和底部设置为宽度1002px左右,并居中对齐,以适应更大分辨率的需要。(现在1600*1200也算是正常分辨率之一吧)将中部的三列,即左侧,主内容区,右侧。置于一个div容器中,并将此div设置为宽度1002px左右,并居中对齐。再将此容器内的左侧,主内容区,右侧分别设置宽度、应用浮动,以达到我们想预想的CSS布局效果。看下面的图片:我们根据上面的图片,整理出各个div的id以及他们的关系:Example Source Code 顶部:header;中部三列的容器:divall;左侧:sider_a;主内容区:main;右侧:sider_b;底部:footer他们的嵌套关系如下图:我们整理出HTML代码:Example Source Code headersider_amainsider_bfooter我们开始编写CSS进行布局:Example Source Code *margin:0;padding:0;font-size:1em;整体局布声明:消除边距,设置文字大小。如果不消除body的边距,在IE等浏览器中,内容不是从左上端的00开始的。Example Source Code #headerwidth:1002px;height:100px;margin:0auto;background:#06f;#divallwidth:1002px;margin:0auto;background:#fff;#footerwidth:1002px;height:60px;margin:0auto;background:#999;顶部:宽度高度设置,水平居中对齐,背景色为#06f;中部三列的容器:宽度设置,水平居中对齐,背景色为白色;底部:宽度高度设置,水平居中对齐,背景色为#999。Example Source Code #sider_awidth:220px;float:left;background:#f93;#mainwidth:580px;float:left;margin-left:6px;background:#dceafc;#sider_bwidth:190px;float:right;background:#ccc;左侧(sider_a):宽度设置,向左浮动,背景色为#f93;主内容区(main):宽度设置,向左浮动,左边距为6px,背景色为#dceafc;右侧(sider_b):宽度设置,向右浮动,背景色为#ccc;为什么主内容区左边距为6px呢?我们是这样计算的:1002-220-580-190=12px12/2=6px;实现中间两条空白分割线相等,均为6px。写到这里,我们布局应该算是完成了,且慢,让我们看看IE与FF这两个让我们抓狂的东东中,显示效果是不是一样。在IE环境中,一切正常,没有任何问题了。但在FF中footer和我们玩起了捉迷藏,跑到上面去了。我们在前面的文章CSS布局教程:用DIV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论