css3之position: sticky;

以前

以前的以前我们都知道css中的position都有以下的属性:

  • static(没有定位,是默认值)元素是出于正常的文档流中,会忽略left,top,right,bottom,z-index属性。
  • relatie(相对定位)是元素设置相对于位置的定位,元素并没有脱离文档流,因此元素原本的位置会被保留,其他的元素位置不会受到影响
  • absolute(绝对定位)是指的是给元素设置绝对定位可以分为两种情况:(1)祖先设置了定位是relative或者是absolute.则次定位的对象为此设置了定位的祖先元素(2)如果祖先没有设置这个,此时就会相对于body定位
  • fixed(固定定位)总是相对于body进行定位,所以可以说是特殊版的absolute
  • inherit(继承父元素的position属性IE8之前的不兼容)

今天主要介绍的是第六个

Poisition:sticky(粘滞的定位)
设置了sticky的元素,在屏幕范围内(viewport)的时候,该元素并不受到定位的影响(设置是top,left等的属性是无效的)当这个元素要移除便宜范围内的时候定位又会变成filexd,然后根据op,left等的属性固定位置的效果
特点:
- 该元素并不脱离文档流,任然保留元素原本在文档流的位置
- 当元素在容器中被滚动超过指定的偏移值的时候,元素在容器内固定在指定的位置上
- 元素固定的相对偏移是相对于离他最近的具有滚动框的祖先元素,如果祖先元素都不可以滚动,那么是相对于viewport来计算元素的偏移量
他是一个新的css3属性,他的表现类似于position:relative和position:fixed的合体,在目标区域在屏幕中是可见的时候,他的行为就像是position:relative,当目标滚动超出目标区域的时候,他的表现就像是fixed,他会固定在目标的位置

## 浏览器的兼容性 ##
这是一个全新的属性,以至于到现在都没有一个规范,W3C也刚刚开始讨论它,而现在只有webkit nightly版本和chrome 开发版(Chrome 23.0.1247.0+ Canary)才开始支持它。

另外需要注意的是,如果同时定义了left和right值,那么left生效,right会无效,同样,同时定义了top和bottom,top赢~~

猜你喜欢

转载自blog.csdn.net/carrie_zzz/article/details/80823263
今日推荐