position 5种定位 静态定位 + 绝对定位 + 相对定位 + 粘性定位 + z-index
静态定位(默认值):static 不受偏移值影响
绝对定位:absolute 和 fixed 统称为绝对定位
相对定位:relative
粘性定位:sticky
偏移值上下左右:top bottom left right
一、relative 相对定位:
相对于原来的位置移动,仍在文档流中,不影响其他元素,例: 元素相对于原来位置 远离 左上(向右下)偏移,只是撑大了容器
.box2{ height:100%; position:relative; left: 50px; top: 50px; }
二、absolute 绝对定位:
脱离文档流(漂浮起来了),会影响其他元素定位,其他元素会顶上原来它的位置
//设置绝对定位,宽度会变,会根据容器中最大固定的元素的大小来决定(不算其中漂浮起来的元素)
1、所有父元素都没有设置绝对或相对定位时,则相对于最近的父元素漂浮起来,有偏移值时相对于根元素即 html 定位(没有父元素)偏移
2、父元素不是默认值static时,有多级父元素,会根据离得最近的不是默认值static(设置了绝对或相对定位) 的父元素进行定位
只设置 absolute 定位,不设置偏移值时:相对于最近的父元素漂浮起来,其他元素占据原来的位置
设置 absolute 定位 + 偏移值 时:相对于最近的有定位的父元素偏移
// 后浮起的覆盖前面浮起的
三、fixed 绝对定位:
相对于浏览器窗口定位
四、sticky 粘性定位:
1、必须设置一个偏移值:top bottom left right;
2、父元素高度不能低于sticky元素的高度
3、父元素不能有 overflow:hidden 或者 overflow:auto 属性
4、粘性定位只在父元素里生效
相当于在 relative 定位 和 fixed 定位之间切换。行为就像 relative 定位,但是当页面滚动时,它的表现为 fixed定位,
不脱离文档流,但是在父元素中相对于浏览器窗口定位,不会超过父元素,最多到父元素底。如果父元素被滚条滚没了,则 sticky 元素会跟着父元素一起消失
Z-index
可以设置元素的叠加顺序,但依赖定位属性,仅能在定位( position:relative /absolute /fixed /sticky )元素上奏效。
如果两个定位元素重叠(比如都是 absolute 定位),没有指定z - index,按照html中元素的顺序,前面的被盖住,后面的叠在上面。
1、auto 默认。堆叠顺序与父元素相等。
2、number 设置元素的堆叠顺序。负数为最下层依次叠加,为负值,元素被普通流中的元素覆盖
3、inherit 规定应该从父元素继承 z-index 属性的值。
posted on 2021-03-26 11:39 cropsecrab 阅读(433) 评论(0) 收藏 举报
浙公网安备 33010602011771号