position四个属性
值 | 描述 |
---|---|
absolute | 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 此元素的位置可通过 “top”、”right”、”bottom” 以及 “left” 属性来规定。 |
relative | 生成相对定位的元素,相对于其正常位置进行定位。 |
fixed | 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 “top”、”right”、”bottom” 以及 “left” 属性进行规定。 |
sticky | 粘性布局,元素先按照普通文档流定位,然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位,而后,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。这个特定阈值指的是 “top”、”right”、”bottom” 以及 “left” 之一 |
static | 默认值。static 元素会忽略任何 “top”、”right”、”bottom”、”left” 和 “z-index” 声明 |
inherit | 规定应该从父元素继承 position 属性的值。position 属性默认是不继承的 |
initial | 设置该属性为浏览器默认值,对 positon 属性来说就是 static |
unset | 将属性的值复位,如果该属性是默认继承属性,该值等同于 inherit ,如果该属性是非继承属性,该值等同于 initial 。对 positon 属性来说就是 static |
sticky布局如何polifill
假如需要设置滑动时区块若超出视口则固定于浏览器上。按照常规做法,监听页面 onscroll 事件,判断 scrollTop 是否大于区块距离视口顶部距离,超过了则设定该区块 position: fixed;
,反之去掉。onscroll 事件触发比较频繁,需要添加截流。