收藏 分销(赏)

相对定位与绝对定位.doc

上传人:s4****5z 文档编号:8796228 上传时间:2025-03-02 格式:DOC 页数:10 大小:633.50KB 下载积分:10 金币
下载 相关 举报
相对定位与绝对定位.doc_第1页
第1页 / 共10页
相对定位与绝对定位.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
CSS定位与定位应用 定位一直是WEB标准应用中的难点,如果不清楚定位那么可能一些效果将不能实现,即使实现了某些效果,在浏览器的兼容性方面可能也会出现问题,如果理清了定位的原理,那么定位会让网页实现的更加完美。在网页制作中,例如实现对联广告,这时候就需要设置绝对定位,来实现如图1所示的效果。 图1 对联广告 一、position的三种定位方式 图1演示了绝对定位的应用,position定位属性主要包含relative相对定位、absolute绝对定位和static默认定位三种定位方式,下面分别对这三种定位方式进行讲解。 (1)relative 相对定位,相对于文档流原来位置的偏移,原占位大小完整保留。相对定位常用的属性、值及其含义如下表所示。 定位属性 属性 值 说明 定位方式 position position:relative; 采用相对定位,相对于本来位置的偏移 偏移量 left left:20px; 距离参照物左侧20px right right:50px; 距离参照物右侧50px top top:10px; 距离参照物顶部10px,相对定位参照物为元素的本来位置 bottom bottom:100px; 距离参照物底部100px 一般情况下,right和left或top和bottom不应同时存在。他们之间有个公式。left值等于-right,同样的,top值等于-bottom,例如:“left:10px;”等价于“right:-10px;”。我们根据上表中对relative知识的描述,来看图2中相对定位元素“第2块”的特点。 图2 相对定位 在图2中,第2块内容本应该在虚线范围内,但是它却移动了位置,主要是在图2页面的第2块中加入“position:relative;top:10px;left:20px;”代码,第2块实现了相对定位,并且左、上都有一定的偏移量,所以就呈现了如图2所示的效果。图2页面的关键代码如下所示: < html> < head> < title>相对定位< /title> < style type="text/css"> div{     color:#fff;     font:bold 22px 黑体;     width:150px;     height:120px;     background:red;     float:left; } .div2{     height:150px;     background:#ff7300;     position:relative;     top:10px;     left:20px; } .clear{     background:blue; } < /style> < /head> < body> < div>第1块< /div> < div class="div2">第2块< /div> < div class="clear">第3块< /div> < /body> < /html> 从上面的代码中可以知道,相对定位有如下3个特点: ①参照物:相对定位是相对于未设置定位方式前的位置,其参照物就是原来位置。 ②偏移量:方式确定后,根据与参照物的具体偏移量来确定元素新位置。 ③占位:相对定位偏移后的元素,其占有的位置是原来位置,其偏移后会覆盖并位于其他重叠元素(如“第3块”)的上面,但不会增加高度和宽度。 (2)absolute 绝对定位,完全脱离文档流,是相对于第一个非默认定位方式的上级元素的距离。相对定位的元素大小会在文档流原来位置占去相同大小的页面空间。而绝对定位则不再占原文档流页面的任何空间。其常用属性语法语义与相对定位类似,例如“position:absolute;top:200px;left:150px;”。定位方式的区别导致了参照物区别。具体参照物为上级元素中,第一个存在非默认定位方式的元素,它完全脱离了文档流。 下面图2页面中的代码进行修改,只修改样式.div2,修改为绝对定位,为方便参照,加大了偏移量,其他代码均没有任何变化,.div2修改后的代码如下所示。 .div2{     height:150px;     background:#ff7300;     position:absolute;     top:180px;     left:200px; } 修改后在浏览器中运行的效果如图3所示,第2块风格改为绝对定位后,位置也发生了变化,并且不再占有原来的位置。 图3 绝对定位 学习完绝对定位,可以发现绝对定位也有3个特点: ①参照物:绝对定位参照物是第一个非默认定位方式的上级元素,如不存在则为整个页面。 ②偏移量:方式确定后,根据与参照物的具体偏移量来确定元素新位置。 ③占位:绝对定位偏移后的元素,不再占原来位置,其偏移后会覆盖并位于其他重叠元素(如“第3块”)的上面。 现在为三个div增加一个上级div,并且设置上级div的相对定位为relative,上外边距设置50px,左边距设置为60px,修改后的页面代码如下所示。 < html> < head> < title>绝对定位< /title> < style type="text/css"> .div1{     color:#fff;     font:bold 22px 黑体;     width:150px;     height:120px;     background:red;     float:left; } .div2{     height:150px;     background:#ff7300;     position:absolute;     top:180px;     left:200px; } .clear{     background:blue; } .div_big{     position:relative;     top:50px;     left:60px; } < /style> < /head> < body>   < div class="div_big">     < div class="div1">第1块< /div>     < div class="div1 div2">第2块< /div>      < div class="div1 clear">第3块< /div>   < /div> < /body> < /html> 修改完上面的代码后,在浏览器中运行的效果如图4所示。 图4 绝对定位及相对定位的应用 position还有一种类似的定位方式为固定定位,值为fixed。同样完全脱离文档流,但参照物为浏览器的可见范围。但只工作在IE7.0的strict模式下,这里稍微提下。 (3)static 静态无偏移,不填时默认属性,偏移量属性无效,属于常规文档流。虽然这个参数只有在JavaScript中实现某些效果时使用,但必须理解static定位方式对应的常规文档流概念。 在前面内容中,我们学习并不断涉及到文档流的概念,我们知道,它是页面内容的组织方式,即从上至下,先分行;然后每行根据元素的特点放置元素:块级元素独占一行,行级元素从左至右排列。 这种组织方式就是往容器中放置流体。流体即水、油等液体,特点是自动紧密排列填充容器,就好像往水缸倒水。而非流体则是无此特点,如屋子里摆放各类家具。 常规文档流中的“常规”,是指除浮动和绝对定位外,网页显示元素的默认组织方式。相对于浮动与绝对定位的特殊情况,常规文档流可以简单的描述为“原来位置”。 上面我们讲解了定位属性中的三种定位方式,其中相对定位与绝对定位,会与原文档流形成堆叠,覆盖在其他重叠位置元素的上面。那么: (1)为什么相对或绝对定位元素会位于常规文档流前面呢? (2)当有多个相对或绝对定位元素存在时,他们又应该如何排列顺序? 要回答这些问题,必须理解并掌握叠放层次z-index属性。 二、叠放层次属性z-index z-index属性只对非默认定位方式的元素(相对、绝对与固定定位)有效,默认值为1,其值为正整数。值越大,叠放在越前面。其语法格式如:“z-index:2”。在绝对定位效果图的例子中新增1个绝对定位的div,并设置第2块叠放层次为“z-index:2”,修改后的代码如下所示。 < html> < head> < title>相对定位< /title> < style type="text/css"> div{     color:#fff;     font:bold 22px 黑体;     width:150px;     height:120px;     background:red;     float:left; } .div2{     height:150px;     background:#ff7300;     position:relative;     top:10px;     left:20px;     z-index:2; } .clear{     background:blue; } .div4{     position:absolute;     top:100px;left:100px;     background:green; } < /style> < /head> < body> < div>第1块< /div> < div class="div2">第2块< /div> < div class="clear">第3块< /div> < div class="div4">第4块(未设置z-index)< /div> < /body> < /html> 在浏览器中运行上面的代码,效果如图5所示。 图5 叠放层次的应用 在图5中,可以很明显的看到,叠放属性是“z-index:2”的第2块位于最上面,第4块其次,最底下是未设置绝对定位的文档流。第4块并未设置z-index的值,但绝对定位的元素,其z-index默认值为1。我们再把上面代码略修改,把第2块的“z-index:2”属性去掉。那么,它的z-index值应该也是默认值1,这时就出现1个问题,同层次如何确定叠放顺序呢?在浏览器中运行修改后的代码,效果如图6所示。 图6 叠放层次后来者居上 从图6中我们很容易得出答案,同层间,按代码中出现顺序排,后出现的居上。 因为叠放层次值,也可以理解为2在正常顺序中位于1后面,因此,可以很简单的把这些叠放层次的组织顺序总结为“后来者居上”: (1)叠放层次值有大小差异,大的居上。就像建房子,地基即文档流页面。楼层数越大则在越上面。 (2)同层间,后出现的居上。 三、实例演示 学习完定位属性,特别是绝对定位及叠放层次z-index属性后,就可以实现页面中常用到的带关闭按钮的对联广告效果,具体效果如图7所示。 图7 带关闭按钮的对联广告 要实现上述效果,其实比较简单: 1)在页面中放置4个元素并设置为绝对定位 2)设置关闭图片的叠放层次为“z-index:2;” 3)根据效果图,确定: ①左边图的左边界“left:40px;” ②右边图的右边界“left:40px;” ③统一上边界,“top:30px;”。 理清思路后,实现上述效果的代码如下所示。 < html> < head> < title>带关闭按钮的对联广告< /title> < style tylie="text/css"> body{     margin:0px;     padding:0px; } #advLeft,#advRight,#closeLeft,#closeRight{     position:absolute;     top:30px; } #advRight,#closeRight{     right:40px; } #advLeft,#closeLeft{     left:40px; } #closeLeft,#closeRight{     z-index:2; } < /style> < /head> < body> < div id="closeLeft">< img src="images/close.gif" alt="alt" />< /div> < div id="closeRight">< img src="images/close.gif" alt="alt" />< /div> < div id="advLeft">< img src="images/ad1.jpg" alt="alt" />< /div> < div id="advRight">< img src="images/ad2.jpg" alt="alt" />< /div> < /body> < /html> 学习完上述内容,可以总结出各种定位方式的使用场合: (1)绝对定位,对联广告及悬停显示等ajax效果。用于在有限页面空间中实现多元素叠放。 (2)相对定位,一般用于为绝对定位的上级元素,为绝对定位元素提供参照物。 10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服