CSS重点属性之Position
position属性指定了元素的定位类型,它有5个值
- static(默认)
- relative
- fixed
- absolute
- sticky
元素可以使用的top / bottom / left / right的属性进行定位。然而,这些属性无法正常工作,除非先设定position属性。他们也有不同的工作方式,这取决于定位方法。
static
HTML元素的默认值,没有定位,遵循正常的文档流对象。静态定位的元素不会收到top,bottom,left,right影响。
1 | div.static { |
fixed
元素的位置相对于浏览器窗口是固定位置。即使窗口是滚动的它也不会移动,这个类似于Android里面某个某个悬浮控件,屏幕滑动时该控件的位置也不变。
1 | p.pos_fixed |
运行效果
可以滑动浏览器看看效果。
Fixed定位使元素的位置与文档流无关,因此不占据空间,Fixed定位的元素会与其它元素重叠。
relative
相对其正常位置的定位(正常文档流是从上到下从左到右)
1 | h2.pos_left |
absolute
绝对定位的元素位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于
1 | h2 |
同fixed定位一样,absolute定位使元素的位置与文档流无关,因此不占据空间,和其它元素会有重叠。
sticky
基于用户的滚动位置来定位,粘性定位的元素是依赖于用户的滚动,在position:relative与position:fixed定位之间切换。它的行为就像position:relative;而当页面滚动超出目标区域时,它的表现就像position:fixed;它会固定在目标位置。固定的位置指的是top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
1 | div.sticky { |