定位
static
默认值,表示没有开启定位。
relative
相对定位。如果开启了相对定位,但是没有设置偏移量,则它不会产生任何变化;如果设置了偏移量,则该元素会相对它原来的位置移动,类似
margin
。相对定位的元素不会脱离文档流(即它原来的位置还在,不会随着定位而消失),也不会改变元素的性质(即行元素不会变成块元素)。相对定位会使元素提升一个层级(类似z-index
)。absolute
绝对定位。会使元素脱离文档流,它会相对于离它最近的且开启了定位的祖先元素来进行定位。绝对定位会使元素提升一个层级(类似
z-index
)。fixed
固定定位。它也是一种绝对定位,因此,它拥有决定定位的大部分特点。但是,它永远会相对浏览器窗口来定位,且它不会随着滚动条的滚动而消失。IE6 不支持固定定位。
sticky
粘性定位。类似于相对定位。可以理解为,当元素到大某个位置时,将其固定(类似用 JS 实现的效果)。IE 不支持该特性。
<body> <div class="d1"></div> </body>
body { margin: 0; padding: 0; height: 1000px; } .d1 { width: 200px; height: 200px; background: #ff6600; position: sticky; /* 当 div 距离页面顶部的距离为 10px 时,将其固定 */ top: 10px; margin: 200px auto 0; }
注意
- 元素开启定位之后,如果没有设置偏移量,则还是在原来的位置,只不过某些定位会脱离文档流。
- 请结合上面的笔记查看,元素脱离文档流后的性质。
- 元素开启定位之后,层级会提升,且兄弟节点之间会从后往前依次覆盖(如果有定位的话)。
提示
更多信息请见 w3cschool。