position属性
position属性的值,有以下几个:
- static 静态定位
- absolute 绝对定位
- relative 相对定位
- fixed 固定定位
- sticky 粘性定位
static静态定位
静态定位就是标准流,块级独占一行,行级共享一行。静态定位是默认值,不会收到top、left等属性的影响。
relative相对定位
相对于自己原来的位置定位。并且不脱离标准流(设置top、left原位置会空着) 作用:
- 微调元素
- 做绝对定位的参考,子绝父相。
absulute绝对定位
- 相对于离自己最近的,并且定了位的祖先元素偏移,如果没有定位祖先元素,会相对于根元素定位。
- 绝对定位会脱离标准流,后面的元素会补上,设置的margin会失效。
- 绝对定位后,不设置top、left的情况下,当前元素的位置不发生变化。若设置了top:0,就去找第一个定位了的祖父元素定位。
- 绝对定位的元素会变为block。
绝对定位是相对于首屏窗口的位置。不是页面位置
fixed固定定位
- 固定定位是一种特殊的绝对定位,会脱离标准流
- 相对于浏览器窗口定位。
- 常用语固定header或footer
sticky
- css3新增的定位方式。
- 父元素的overflow:visible。(hidden时会无法滚动)。
- 父元素的高度不能低于sticky。
- 如果父元素没有定位(绝对/相对/固定),则相对于viewport定位,否则以父元素定位。
- 设置阈值(top,left,right,bottom),如果不设置,就和相对定位相同。如果设置了那么top和left的优先级更高。
- 相对定位和固定定位的融合,在跨越阈值前为相对定位,之后为固定定位。