第12课CSS浮动与定位



《第12课CSS浮动与定位》由会员分享,可在线阅读,更多相关《第12课CSS浮动与定位(59页珍藏版)》请在文档大全上搜索。
1、第第1212课课 CSSCSS浮动与定位浮动与定位 上一课介绍了独立的盒子模型,以及在标准流情况上一课介绍了独立的盒子模型,以及在标准流情况下的盒子的相互关系。如果仅仅按照标准流的方式进下的盒子的相互关系。如果仅仅按照标准流的方式进行排版,就只能按照仅有的几种可能性进行排版,限行排版,就只能按照仅有的几种可能性进行排版,限制太大。制太大。 CSS CSS的制定者也想到了排版限制的问题,因此又给的制定者也想到了排版限制的问题,因此又给出了若干不同的手段以实现各种排版需要,从而可以出了若干不同的手段以实现各种排版需要,从而可以灵活地实现各种形式的排版要求。灵活地实现各种形式的排版要求。 本章介绍本
2、章介绍CSSCSS中中floatfloat和和positionposition这两个重要属性这两个重要属性的应用。的应用。 第第1414章章 盒子的浮动与定位盒子的浮动与定位盒子的浮动盒子的浮动14.1盒子的定位盒子的定位14.2z-index空间位置空间位置14.3盒子的盒子的display属性属性14.414.1 14.1 盒子的浮动盒子的浮动 在标准流中,一个块级元素在水平方向会自在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界;而在竖直方动伸展,直到包含它的元素的边界;而在竖直方向和兄弟元素依次排列,不能并排。向和兄弟元素依次排列,不能并排。 使用使用“浮动浮动”方
3、式后,块级元素的表现就会方式后,块级元素的表现就会有所不同。有所不同。 基本语法:基本语法: floatfloat: none/left/right: none/left/right float float属性默认为属性默认为nonenone,也就是标准流通常,也就是标准流通常的情况。如果将的情况。如果将floatfloat属性的值设置为属性的值设置为leftleft或或rightright,元素就会向其父元素的左侧或右侧靠紧,元素就会向其父元素的左侧或右侧靠紧,同时默认情况下,盒子的宽度不再伸展,而是收同时默认情况下,盒子的宽度不再伸展,而是收缩,根据盒子里面的内容的宽度来确定。缩,根据盒子
4、里面的内容的宽度来确定。盒子盒子浮动的规则浮动的规则盒子浮动的规则盒子浮动的规则u浮动元素的外边缘不会超过父元素的内边缘浮动元素的外边缘不会超过父元素的内边缘u浮动元素会脱离标准流,未设置浮动的元素会顶浮动元素会脱离标准流,未设置浮动的元素会顶替浮动元素的位置替浮动元素的位置u浮动元素不会互相重叠浮动元素不会互相重叠, ,未设置浮动的元素中的文未设置浮动的元素中的文字会环绕设置了浮动元素的周围字会环绕设置了浮动元素的周围u浮动元素不会上下浮动浮动元素不会上下浮动 14.1.1 14.1.1 制作基础页面制作基础页面 浮动的性质比较复杂,这里先制作一浮动的性质比较复杂,这里先制作一个基础的页面,
5、代码如下,文件为个基础的页面,代码如下,文件为“14-14-01.html”01.html”。 后面讲解将基于这个文件进行。后面讲解将基于这个文件进行。14.1.2 14.1.2 设置第设置第1 1个浮动的个浮动的divdiv 在上面的代码中找到:在上面的代码中找到: .son1.son1 / /* * 这里设置这里设置son1son1的浮动方式的浮动方式* */ / 将将.son1.son1盒子设置为向左浮动,盒子设置为向左浮动,代码为:代码为: .son1.son1 / /* * 这里设置这里设置son1son1的浮动方式的浮动方式* */ / float:leftfloat:left;
6、; 图图14.2 设置第设置第1个个div浮动时的效果浮动时的效果实例实例14-02.htm14.1.3 14.1.3 设置第设置第2 2个浮动的个浮动的divdiv图图14.3 设置前两个设置前两个div浮动时的效果浮动时的效果实例实例14-03.htm14.1.4 14.1.4 设置第设置第3 3个浮动的个浮动的divdiv图图14.4 设置第设置第3个个div浮动时的效果浮动时的效果实例实例14-04.htm14.1.5 14.1.5 改变浮动的方向改变浮动的方向 图图14.5 改变浮动方向后的效果改变浮动方向后的效果 实例实例14-05.htm 图图14.6 div被挤到下一行时的效果
7、被挤到下一行时的效果 14.1.6 14.1.6 再次改变浮动的方向再次改变浮动的方向图图14.7 交换交换div位置时的效果位置时的效果 实例实例14-06.htm 图图14.8 div被挤到下一行的效果被挤到下一行的效果14.1.7 14.1.7 全部向左浮动全部向左浮动 图图14.9 设置设置3个个div浮动时的效果浮动时的效果 实例实例14-06-02.htm 图图14.10 div挤倒下一行被卡住时的效果挤倒下一行被卡住时的效果14.1.8 14.1.8 使用使用clearclear属性清除浮动的影响属性清除浮动的影响 图图14.11 设置浮动后文字环绕的效果设置浮动后文字环绕的效果
8、 在未浮动的文字在未浮动的文字盒子(如盒子(如p标签)标签)的样式中添加:的样式中添加: clear:left/right/both;实例实例14-07.htm 图图14.12 清除浮动对左侧影响后的效果清除浮动对左侧影响后的效果 图图14.13 清除浮动对右侧影响后的效果清除浮动对右侧影响后的效果14.1.9 14.1.9 扩展盒子的高度扩展盒子的高度 图图14.14 包含浮动包含浮动div的容器将不会适应高度的容器将不会适应高度 实例实例14-08.htm 图图14.15 希望实现的效果希望实现的效果14.2 14.2 盒子的定位盒子的定位 广义的广义的“定位定位”:要将某个元素放到某个位
9、:要将某个元素放到某个位置的时候,这个动作可以称为定位操作,可以使置的时候,这个动作可以称为定位操作,可以使用任何用任何CSSCSS规则来实现,这就是泛指的一个网页排规则来实现,这就是泛指的一个网页排版中的定位操作,使用传统的表格排版时,同样版中的定位操作,使用传统的表格排版时,同样存在定位的问题。存在定位的问题。 狭义的狭义的“定位定位”:在:在CSSCSS中有一个非常重要中有一个非常重要的属性的属性positionposition,这个单词翻译为中文也是定位,这个单词翻译为中文也是定位的意思。的意思。 然而要使用然而要使用CSSCSS进行定位操作并不仅仅通过进行定位操作并不仅仅通过这个属性
10、来实现,因此不要把二者混淆。这个属性来实现,因此不要把二者混淆。 首先,对首先,对positionposition属性的使用方法做一个概属性的使用方法做一个概述,后面再具体举例子说明。述,后面再具体举例子说明。 positionposition属性可以设置为以下属性可以设置为以下4 4个属性值之个属性值之一。一。 (1 1)staticstatic:这是默认的属性值,也就是该:这是默认的属性值,也就是该盒子按照标准流(包括浮动方式)进行布局。盒子按照标准流(包括浮动方式)进行布局。 (2 2)relativerelative:称为相对定位,使用相对定:称为相对定位,使用相对定位的盒子的位置常以
11、标准流的排版方式为基础,位的盒子的位置常以标准流的排版方式为基础,然后使盒子然后使盒子相对于它在原本的标准位置偏移指定相对于它在原本的标准位置偏移指定的距离。的距离。 相对定位的盒子仍在标准流中,它后面的盒相对定位的盒子仍在标准流中,它后面的盒子仍以标准流方式对待它。子仍以标准流方式对待它。 (3 3)absoluteabsolute:绝对定位,:绝对定位,盒子的位置以它盒子的位置以它的包含框为基准进行偏移的包含框为基准进行偏移。 绝对定位的盒子从标准流中脱离。绝对定位的盒子从标准流中脱离。 这意味着它们对其后的兄弟盒子的定位没有这意味着它们对其后的兄弟盒子的定位没有影响,其他的盒子就好像这个