《position属性剖析》由会员分享,可在线阅读,更多相关《position属性剖析(6页珍藏版)》请在金锄头文库上搜索。
1、5-3节 position属性position:relative相对定位 absolute绝对定位h2 position:absolute; left:100px; top:150px; 值描述absolute生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 left, top, right 以及 bottom 属性进行规定。Relative生成相对定位的元素,相对于其正常位置进行定位。因此,left:20 会向元素的 LEFT 位置添加 20 像素。fixed生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 left, top, right
2、 以及 bottom 属性进行规定。static默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。inherit规定应该从父元素继承 position 属性的值。(IE不支持此属性)CSS 相对定位相对于元素原来的位置发生移动,占位如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素
3、向右移动。#box_relative position: relative; left: 30px; top: 20px;如下图所示:注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。练习h2.pos_leftposition:relative;left:-20pxh2.pos_rightposition:relative;left:30px这是位于正常位置的标题这个标题相对于其正常位置向左移动这个标题相对于其正常位置向右移动相对定位会按照元素的原始位置对该元素进行移动。样式 left:-20px 从元素的原始左侧位置减去 20 像素。样式 l
4、eft:20px 向元素的原始左侧位置增加 20 像素。 CSS 绝对定位不占据空间设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。普通流中其它元素的布局就像绝对定位的元素不存在一样:#box_relative position: absolute
5、; left: 30px; top: 20px;如下图所示:绝对定位的元素的位置相对于最近的已定位父级元素,如果元素没有已定位的父级元素,那么它的位置相对于最初的包含块。对于定位的主要问题是要记住每种定位的意义。所以,现在让我们复习一下学过的知识吧:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位父级元素,如果不存在已定位的父级元素,那么“相对于”最初的包含块。注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。提示:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置z-index 属性来控制这些框的堆放次序。 前端网学习
6、笔记6:CCS中关于定位的机制、Position的使用#boxwidth:500px; height:500px; background:#C6C;margin:50px;/*大盒子 红色*/#box1width:200px; height:200px; background:#990;/*小盒子 绿色*/#box2width:300px; height:300px; background:#FC0;/*小盒子 黄色*/ 一、不添加任何定位时,此时效果。二、此时给box1相对定位relative时,效果如图三、此时给box1相对定位relative,top为20,left为50;(相对于自己本
7、来的位置向下移动20px,向右移动50px.) 四、当只给box1绝对定位时,如图。因为绝对定位不占位,所以黄色的块上来了。 五、当只给box1绝对定位, top为20,left为50;(相对于body,也就是整个网页,向下移动20px,向右移动50px.) 如果不设置box的position,那么box1的absolute则会相对于body,如果设置了box的position为relative或者absolute,那么box1的absolute则会相对于box。六,当box给了相对定位,box1给了绝对定位,top为20,left为50;因为我的大盒子使用了相对定位,所以他的位置移动相对box本身,我的box1使用了绝对定位,box1的父级元素使用相对定位,所以box1 的位移是相对于box,向下移动20px,向右移动50px.) 可以通过z-index来设置重叠覆盖的顺序,值越大页面就越往上,例如将box1设置为:z-index: 2;