1. position
**absolute、fixed、relative都需要用rtbf设置,否则不会根据要求定位。
absolute:
- 脱离文档流(拿出来,
覆盖在后填补元素上面,空缺会被后面的元素填上),不占据空间,破坏布局空间。 - 通过 top,bottom,left,right 定位。
定位的起始位置(又是包含元素)选取其最近一个已经有定位设置的父级-除了static!对象进行绝对定位,如果对象的父级没有设置定位属性,或者是static,absolute元素将以body文档本身进行定位,- 必须要有tblr值,否则定位也不会跟着父级元素走。而是按顺序走。
- 可以通过z-index进行层次分级。:(如果想要后填充的元素覆盖在脱离出来的元素上面,就可以给填充元素设置更大的z-index)
fixed:固定位置
- 固定在
浏览器的窗口位置相对位置,和其他任何东西都没有关系。 定位的起始位置:浏览器左上角- fixed 固定定位以后会使其
脱离文档流,脱离文档流以后就会漂浮在页面上、不会占据空间,导致以后的元素内容会上移,会被脱离文档流的元素遮挡。
relative: 相对定位
- 对象
不可层叠、不脱离文档流但是表现区脱离文本流,占据空间但不破坏空间布局, 定位的起始位置:自身静态位置- 并且可以通过z-index进行层次分级。
- 相对于自己默认位置根据ltrb的值移动,
可以被当作父元素。
static :
- 正常页面流
- position属性的默认值。
- 元素位置:根据源码位置由浏览器决定,此时
tbrl和z-index属性无效。 - 元素之间不产生重叠。
sticky:
- 类似relative和fixed的结合;一些时候是relative定位(定位基点是自身默认位置),另一些时候自动变成fixed定位(定位基点是视口)。
- 不设置tblr,和relative一样。
- 规则:当页面滚动,父元素开始脱离视口时,部分不可见,效果和fixed一样。
**offsettop,中需要自己和父级position