position属性详解(粘性布局)

CSS中 position主要有以下几种定位方式


static

静态定位,元素处于文档流中,此时 top, right, bottom, left 和 z-index 属性无效

用法:  .static{position:static}


relative

相对定位,根据top,bottom,left,right属性在正常的文档流中偏移元素的位置,z-index有效

用法:  .relative{position:relative}


absolute

绝对定位,脱离文档流,相对于 static 定位以外的最近的祖先元素进行定位,将其定位在指定位置相对于其最近定位的,如果没有,则相对于根元素

用法:  .absolute{position:absolute}


fixed

固定定位,脱离文档流,相对于视口进行定位,滚动时,元素的位置不变

用法:  .fixed{position:fixed}


sticky(css3新特性,仅适用于ios)

粘性定位,元素处于文档流中,采用相对定位,但会在滚动到某个位置时变为fixed定位,且相对于其最近的块级祖先元素进行定位

用法:  .static{position:static;top:10px;position: -webkit-sticky;}

ios:在viewport 视口滚动到元素 top 距离小于 10px 之前,元素为相对定位。之后,元素将固定在与顶部距离 10px 的位置,直到 viewport 视口回滚到阈值以下

需要注意的是sticky 生效应至少设置 top, right, bottom, left中的一个

如果同时指定 top 和 bottom(非 auto),优先采用 top

如果同时指定 left 和 right,若 direction 为 ltr(英语、汉语等),则优先采用 left;若 direction 为 rtl(阿拉伯语、希伯来语等),则优先采用 right



android:采用监听的方法

var nav = document.querySelector('.nav');

var navOffsetY = nav.offsetTop;

function onScroll(e) {

window.scrollY >= navOffsetY ? nav.classList.add('fixed') : nav.classList.remove('fixed');

}

window.addEventListener('scroll', onScroll);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,846评论 1 92
  • CSS的position总是属性很容易让人弄混~ 为了仔细区别它们,所以今天总结一下CSS的position属性~...
    fehysunny阅读 2,982评论 0 7
  • 我们先来看看CSS3 Api中对position属性的相关定义:static:无特殊定位,对象遵循正常文档流。to...
    JasonStack阅读 694评论 0 3
  • 许久没有像今天这样,此刻还躺在床上迟迟不肯起床了。考研结束,正如心中的一块石头落了地! 早晨思索了半天“该用什么词...
    杨阳Ronaldo7阅读 348评论 0 0
  • 四年后 你再次做了同样的选择 虽然我知道现实的残酷 但还是满怀自欺欺人的希望 望你可以履行承诺 望你没有忘记曾经的...
    2095e4fbc3ed阅读 128评论 0 1