版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章使用CSS进行页面布局9.1Web页面布局简介9.2CSS盒模型9.3网页居中9.4多栏布局9.5盒布局9.6弹性盒布局9.7综合实例返回9.1Web页面布局简介9.1.1布局注意事项1.内容与样式分离作为最佳实践,应始终保持内容(HTML)与样式(CSS)分离。第5章介绍了如何通过外部样式表实现这一点。如果对所有的页面都这样做,就可以共享相同的布局和整体样式,这也让日后修改整个网站的设计变得更加容易—只修改CSS文件就可以了。2.浏览器注意事项有时,有必要针对IE的特定版本编写CSS样式规则,以修复IE的异常行为引起的问题。有几种办法可以实现上述要求,不过从性能上说,最好的方法是使用条件注释在html元素上创建IE版本特有的类,并在样式表中应用这个类。另一种方法是使用条件注释引入位于单独样式下一页返回9.1Web页面布局简介表中的IE补丁。9.1.2布局方法1.固定(fixed)布局对于固定布局,整个页面和每一栏都有基于像素的宽度。2.流式(fluid或liquid)布局流式布局使用百分数定义宽度,允许页面随显示环境的改变进行放大或缩小。3.弹性布局弹性布局对宽度和其他所有属性的值都使用em,从而让页面根据用户的font-size设置进行缩放。上一页下一页返回9.1Web页面布局简介9.1.3布局结构1.“同”字型布局所谓“同”字型结构就是指页面顶部为“网站标志+广告条+主菜单”,下方左侧和右侧为二级栏目条或链接栏目条,屏幕中间显示具体内容的布局,如图9-1所示。2.“国”字型布局“国”字型布局是在“同”字型布局的基础上演化而来的,在保留“同”字型的同时,在页面的下方增加一横条状的菜单或广告,是一些大型网站所喜欢的类型。一般最上面是网站的标题及横幅广告条,接下来就是网站的主要内容,左右分列两小条内容,中间是主要部分,与左右一起罗列到底,最下面是网站的基本信息、联系方式、版权声明等,上一页下一页返回9.1Web页面布局简介如图9-2所示。3."T”字型布局这是一个形象的说法,是指页面的顶部是“网站标志+广告条”,左侧(或右侧)是主菜单,右侧(或左侧)是主要内容。这种布局的优点是页面结构清晰、主次分明,是初学者最容易上手的布局方法;缺点是如果不注意细节上的色彩会导致页面呆板,很容易让人觉得乏味,如图9-3所示。4.“三”字型布局这种布局多见于国外站点,国内网站用得不多。其特点是在页面上有横向两条(或多条)色块,将页面分割为三部分(或更多),色块中大多放广告条、更新和版权提示,如图9-4所示。上一页下一页返回9.1Web页面布局简介5.对比布局顾名思义,这种布局采取左右或者上下对比的方式:一半深色,一半浅色。其优点是视觉冲击力强;缺点是将两部分有机地结合比较困难,如图9-5所示。6.POP布局POP引自广告术语,是指页面布局像一张宣传海报,以一张精美图片作为页面的设计中心。如图9-6所示。7.Flash布局这种布局是指整个或大部分网页本身就是一个Flash动画,它本身就是动态的,画面一般比较绚丽、有趣,是一种比较新潮的布局方式。如图9-7所示。上一页返回9.2CSS盒模型CSS在处理网页时,它认为每个元素都包含在一个不可见的盒子里。盒子有内容区域、内容区域周围的空间(内边距padding)、内容边距的外边缘(边框border)和边框外面将元素与相邻元素隔开的不可见区域(外边距margin。这类似于挂在墙上的带框架的画,其中衬边是内边距,框架是边框,而该画框与相邻画框之间的距离则是外边距,如图9-8所示。每个元素盒子可以是块级的(block),也可以是行内的(inline)。在CSS中,使用,display属性来定义盒的类型。(1)block类型:这种盒模型的元素默认占据一行,允许通过CSS设置宽度、高度,例如<div>,<p>元素。下一页返回9.2CSS盒模型(2)Inline类型:这种盒模型的元素不会占据一行(默认允许在一行放置多个元素),即使通过CSS设置宽度、高度也不会起作用,例如<span>、<a>元素。对元素盒子进行定位有四种基本方法(1)可以让盒子处于文档流中(这是默认的方式,也称为静态方法,它也是用得最多的方法);(2)可以让盒子脱离文档流,并制定该元素相对于父元素(绝对方法,需慎用)或浏览器窗口(固定方法,在实践中用得更少)的精确坐标;(3)还可以相对于盒子在文档流中的默认位置对其进行移动(相对方法,使用频率介于静态方法和另两种方法之间);(4)此外,如果盒子相互重叠,还可以指定它们的叠放次序(z-index)。上一页下一页返回9.2CSS盒模型CSS提供了如下布局相关属性(1)float.该属性控制日标HTML元素是否浮动以及如何浮动。(2)clear:该属性用于设置HTML元素的左、右是否允许出现浮动对象。(3)clip:该属性控制对HTML元素进行裁剪。(4)overflow.设置当HTML元素不够容纳内容时的显示方式。(5)overfl-x.该属性的作用与overflow相似,只是该属性只控制水平方向的显示方式。(6)overflow-y.该属性的作用与overflow相似,只是该属性只控制垂直方向的显示方式。(7)visibility:适用于CSS2,用于设置目标对象是否显示。(8)display:用于设置目标对象是否及如何显示。上一页返回9.3网页居中我们在浏览网页时,基本不会遇到和浏览器窗口同样宽的页面,当今宽屏显示器的使用越来越普及,浏览器的窗口也变得非常宽,如果网页与浏览器同宽,这将使内容的阅读变得极其难受,如图9-9所示。通常网页会把页面内容的宽度控制在一个适当的范围内(一般不超过1000px),并将整个页面内容水平居中放置,内容区域之外的两侧则显示网页背景颜色或背景图片,如图9-10、图9-11所示。要制作这样的页面,首先应有一个id为wradder(意思是包装袋,也可以命名为其他名字)的元素,将页面中所有的元素都写在该div中。返回9.4多栏布局9.4.1使用float实现多栏布局float属性可以使元素浮动在文本或其他元素上,可以使用这种技术让文本环绕在图像周围,如图9-15所示(详见6.3节)。也可以使用相同的方法让主题内容向一侧浮动,从而让侧栏显示在它的旁边,如图9-16所示。主体部分是id为content的div,向左浮动;右侧边栏是id为sidebar的div,向右浮动。由于content设置了向左浮动,因此侧栏sideba:即使不设置向右浮动,也会靠在content的右侧。9.4.2使用clear实现换行clear属性可以控制元素浮动在哪些元素的旁边,以及不能浮动在哪些下一页返回9.4多栏布局元素的旁边。这里,为页脚设置clear.both是指页脚左右两侧都不允许有浮动元素,在本例中也可以写为clear.left,以指定左侧不允许有浮动元素,但是两边都进行清理也没有坏处。推荐将clear属性添加到不希望环绕浮动的元素上。9.4.3使用column-count实现多栏布局在CSS3中加入了多栏布局属性column-count,使用该属性可以将一个元素中的内容分为两栏或多栏显示,并且确保各栏中内容的底部对齐。由于该属性并未被所有浏览器支持和接受,因此在使用该属性时需要加上厂商前缀(关于厂商前缀的介绍详见13.1)。针对Firefox浏览器,需要将其写为-moz-column-count,针对Safari浏览器或者上一页下一页返回9.4多栏布局Chrome浏览器,需要将其写为-webkit-column-count,而IE浏览器不支持该属性。还可以使用column-gap属性来设置多栏之间的间隔距离。column-rule属性在栏与栏之间增加一条间隔线,可以设定该间隔线的宽度、线型和颜色,该属性的属性值的设定方法与CSS中border属性的设定方法相同。同样,针对Firefox浏览器,需要将其写为-moz-column-gap和-moz-column-rule,针对Safari浏览器或者Chrome浏览器,需要将其写为-webkit-column-gap和-webkit-column-rule,IE浏览器不支持该属性。上一页返回9.5盒布局9.5.1使用float属性以及column-count属性的缺点1.使用float属性的缺点使用float属性以及clear属性可以实现多栏布局,但是每个栏目条的高度随栏目中内容的多少不同而不一致,从而会导致多个栏目底部不能对齐,尤其是在每个栏目都设置了背景颜色或背景图片时更是如此。在下例中,有三个栏目,分别是左侧边栏、中间内容和右侧边栏。使用float属性将它们设为并列放置,并设置不同的背景颜色,如图9-20所示。可以看出,在没有设置高度时,div的高度由装入其中的内容多少决定,使用float属性方法,左右两栏或多栏底部并没有对齐,当它们有下一页返回9.5盒布局不同的背景颜色或图片时尤其显得突兀。2.使用column-count属性的缺点对于column-count属性而言,虽然其可以设置高度相等的两栏或多栏布局,但多个栏目的宽度是均等的,不可以将不同栏目的宽度设为不同。另外,使用column-count进行布局时,也不能具体指定在哪个栏中显示什么内容。在上例中采用column-count的方式设置多栏布局,去除掉left-sidebar、content、right-sidebar中的float和width属性,在wrapper中添加column-count属性,其效果如图9-21所示。可以看出,wrapper中左侧边栏、中间内容和右侧边栏的内容在三个栏目中平均分成了等宽的3等份,且无法控制每个栏目中显示内容的多少。上一页下一页返回9.5盒布局9.5.2使用盒布局在CSS3中,通过box属性来使用盒布局,针对Firefox浏览器,需要将其写为-moz-box,针对Safari浏览器或者Chrome浏览器,需要将其写为-webklt-box,IE浏览器不支持该属性。在上例中,使用盒布局的方式,在wrapper中使用box属性,left-sidebar,content,right-sidebar中只设置宽度、背景颜色和内边距,其效果如图9-22所示。可以看出,三个栏目的高度对齐,且各自栏目中的内容相互不干扰。上一页返回9.6弹性盒布局9.6.1使用自适应窗口的弹性盒布局在上节介绍的盒布局中,对左侧边栏、中间内容、右侧边栏的三个div元素的宽度都进行了设定,如果想让这三个,div元素的总宽度随着浏览器窗口的宽度变化而变化,就需要使用box-flex属性,使盒布局变为弹性盒布局。针对Firefox浏览器,需要将其写为-moz-box-flex,针对Safari浏览器或者Chrome浏览器,需要将其写为-webkit-box-flex,IE浏览器不支持该属性。为了实现这一要求,先使用id为container的div将wrapper包裹起来。然后设置作为网页元素容器的container的宽度及居中属性。将宽度设置为浏览器窗口的80%,最大宽度max-width为1000px,上下边距为0,左右水平居中。下一页返回9.6弹性盒布局然后在中间内容content的样式中,将原本的固定宽度width;380px改为box-flex.1,将其设置为弹性大小,其他,div元素的样式不变。其显示效果如图9-23、图9-24所示,在不同的浏览器宽度下中间内容的宽度也不同,但是网页总宽度不超过1000px。9.6.2改变元素的显示顺序在使用弹性盒布局的时候,可以通过box-ordinal-group属性来改变各元素的显示顺序。可以在每个元素的样式中加入box-ordinal-group属性,该属性使用一个表示序号的整数属性值,浏览器在显示的时候根据该序号从小到大来显示这些元素。针对Firefox浏览器,需要将其写为-moz-box-ordinal-group,针对Safari浏览器或者Chrome浏览器,需要将其写为webkit-box-ordinal-group,IE浏览上一页下一页返回9.6弹性盒布局器不支持该属性。例如要将上例中左右侧边栏的顺序颠倒,将右侧边栏放在左侧,左侧边栏放在右侧,可以在代表左侧边栏、中间内容、右侧边栏的div元素中都加入box-ordinal-group属性,并在该属性中指定显示时的序号,这里将右侧边栏序号设为1,中间内容序号设为2,左侧边栏序号设为3。其显示效果如图9-25所示,左侧边栏到了右侧,右侧边栏到了左侧。9.6.3改变元素的排列方向在使用弹性盒布局的时候,可以很简单地将多个元素的排列方向从水平方向修改为垂直方向,或者从垂直方向修改为水平方向,就好比把布局结构由左中右排列的“同”字型变成了上中下排列的“三”字型。上一页下一页返回9.6弹性盒布局在CSS3中,使用box-orient来指定多个元素的排列方向,针对Firefox浏览器,需要将其写为-moz-box-oroent,针对Safari浏览器或者Chrome浏览器,需要将其写为-webkit-box-orient,IE浏览器不支持该属性。box-orient属性的默认值为horizontal(水平方向排列),也就是说在不设置该属性的时候元素都是按照水平方式排列的,如果布局需要也可将其值设为vertical(表示垂直方向排列)。本例在9.6.1节自适应窗口的弹性盒布局的例子的基础上,将水平放置的三个,div元素改为垂直放置。由于网页内容的总宽度由container元素设为80%,最大不超过1000px,因此在垂直排列时不需要再设每个,div的宽度,它们的宽度都和containe:相同。同理,上一页下一页返回9.6弹性盒布局由于宽度已由container元素决定,也无需在COntPnt元素中设置box-flex属性。在设置过box属性的wrapper中加入box-orient属性,并将属性值设置为vertical,则左侧边栏、中间内容、右侧边栏的排列方向将从水平方向排列变为垂直方向排列,如图9-26所示。上一页返回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村村干部坐班考勤制度
- 医院物业考勤制度范本
- 南省工商联会议考勤制度
- 小企业考勤制度管理办法
- 学校宣传部门考勤制度
- 幼儿园考勤制度奖罚制度
- 中小型公司考勤制度范本
- 安全员上班考勤制度范本
- 公司行政考勤制度大全
- 大学班级晚自习考勤制度
- 易制爆化学品上岗培训
- 生物安全培训 课件
- 语文●全国甲卷丨2023年普通高等学校招生全国统一考试语文试卷及答案
- 康养银发产业“十五五规划”研究报告
- T/IESB 002-2020景观照明设施运行维护费用估算
- 卧床患者生活护理课件
- 高考生物 考前专项拔高提分练 二 必考题型二 遗传变异
- 五年级上册数学计算题每日一练(共20天带答案)
- 2025春季开学第一课安全教育班会课件-
- 课件:《科学社会主义概论(第二版)》导论
- 雨污水管网施工危险源辨识及分析
评论
0/150
提交评论