position 有哪些属性,分别是什么作用
position 的属性值: relative,absolute,fixed,static,inherit,sticky
static
- static(没有定位)是position的默认值,元素处于正常的文档流中,会忽略left、top、right、bottom和z-index属性。
relative
- relative(相对定位)是指给元素设置相对于原本位置的定位,元素并不脱离文档流,因此元素原本的位置会被保留,其他的元素位置不会受到影响。
使用场景:子元素相对于父元素进行定位
absolute
- absolute(绝对定位)是指给元素设置绝对的定位,相对定位的对象可以分为两种情况:
1) 设置了absolute的元素如果存在有祖先元素设置了position属性为relative或者absolute,则这时元素的定位对象为此已设置position属性的祖先元素。
2) 如果并没有设置了position属性的祖先元素,则此时相对于body进行定位。
使用场景:
- 跟随图标 图标使用不依赖定位父级的absolute和margin属性进行定位,这样,当文本的字符个数改变时,图标的位置可以自适应
- 视频提示 一般在视频图片上的边角上都会有"自制"、"最新"、"1080p"等诸如此类的提示。使用不依赖的绝对定位属性,可以让父级元素不设置relative,拓展性更强
- 边缘对齐
引用: https://www.cnblogs.com/xiaohuochai/p/5315942.html
fixed
- 可以简单说fixed是特殊版的absolute,fixed元素总是相对于body定位的。
使用场景:侧边栏或者广告图
1.
inherit
- 继承父元素的position属性,但需要注意的是IE8以及往前的版本都不支持inherit属性。
sticky
- 设置了sticky的元素,在屏幕范围(viewport)时该元素的位置并不受到定位影响(设置是top、left等属性无效),当该元素的位置将要移出偏移范围时,定位又会变成fixed,根据设置的left、top等属性成固定位置的效果。
- 当元素在容器中被滚动超过指定的偏移值时,元素在容器内固定在指定位置。亦即如果你设置了top: 50px,那么在sticky元素到达距离相对定位的元素顶部50px的位置时固定,不再向上移动(相当于此时fixed定位)。
使用场景:跟随窗口