position定位
五种属性值。
- static
- relative
- fixed
- absolute
- sticky
元素通过top、bottom、right、left来确定位置的,根据position属性的值来进行不同的操作,如果不设置position属性值,top、bottom、right、left不会起作用。
static属性值
设置position: static;
的元素不会以任何特殊方式定位;它是始终根据页面的正常流进行定位。
relative属性值
position: relative;
的元素相对于其正常位置进行定位。
设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。
相对定位:不会导致元素脱离文档流,只是让元素在原来位置上进行偏移,位置的变化不影响整体布局,即不脱离文档流,且 偏移的幅度较小。
fixed属性值
position: fixed;
的元素是相对于视口定位的,这意味着即使滚动页面,它也始终位于同一位置。 top、right、bottom 和 left 属性用于定位此元素。
固定定位的元素不会在页面中通常应放置的位置上留出空隙。
固定定位:其他情况和绝对定位完全一样。包含块:固定为视口(浏览器的可视窗口)
absolute属性值
position: absolute;
的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)。
然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。
绝对定位:会让元素脱离文档流,不占据页面位置
注意:“被定位的”元素是其位置除 static 以外的任何元素。
sticky属性值
position: sticky;
的元素根据用户的滚动位置进行定位。
粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)。
注意:Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀(请参见下面的实例)。您还必须至少指定 top、right、bottom 或 left 之一,以便粘性定位起作用。
重叠
在对元素进行定位时,它们可以与其他元素重叠。
z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。
负值在文字下面,默认值为0,具有较高堆叠顺序的元素始终位于具有较低堆叠顺序的元素之前,如果两个定位的元素重叠而未指定 z-index,则位于 HTML 代码中最后的元素将显示在顶部。
calc()
calc()可以进行数学的四则运算计算。注意格式。
calc(50% + 1px)
运算符两侧需要加空格。