CSS position
position 属性的五个值:
- static
- relative
- fixed
- absolute
- sticky
元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。
static定位
HTML 元素的默认值,即没有定位,遵循正常的文档流对象。静态定位的元素不会受到 top, bottom, left, right影响。
fixed定位
元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动。ps:Fixed定位使元素的位置与文档流无关,因此不占据空间。Fixed定位的元素和其他元素重叠。
relative 定位
相对自身位置(以自身为坐标轴)进行移动,元素所占的空间不会改变。如图给小div定位
{position:relative
left:20px}
则小div距离坐标轴2 的Y轴20px即向右移动20px
absolute定位
绝对定位的元素相对于最近的已定位的父级元素移动,如果无定位的父级元素,则相对于页面移动。absolute 定位使元素的位置与文档流无关,因此不占据空间。absolute 定位的元素和其他元素重叠。如上图给小div设置属性
{position:absolute;
left:20px}
没有给大div(小div的父级)设置position:relative,小div的左边款会距离页面20px。若是设置了,则小div的左边框距离坐标轴1 的Y轴(大div的左边框)20px。
sticky定位
sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。 基于用户的滚动位置来定位。粘性定位的元素是依赖于用户的滚动,在 position:relative与 position:fixed定位之间切换。
它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix
sticky 定位。 Safari 需要使用 -webkit- prefix