用户的屏幕越来越大,而页面太宽的话会不宜阅读,所以绝大部分网站的主体宽度和之前相比没有太大的变化,于是浏览器中就有越来越多的空白区域,所以你可能注意到很多网站开始在滚动的时候让一部分内容保持可见,比如,侧边栏的部分区域。position:sticky为此而生。

position:sticky用法

position:sticky是一个新的css3属性,它的表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置。

使用起来也非常简单:

.sticky {
position: -webkit-sticky;
position:sticky;
top: 15px;
}

目前来说还需要用私有前缀

浏览器兼容性:

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

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

fall back

虽然其它浏览器尚不支持,但是实现起来其实不难,我们可以用js简单实现:

<div class="header"></div>
.sticky {
position: fixed;
top:;
}
.header {
width: 100%;
background: #F6D565;
padding: 25px 0;
}
var header = document.querySelector('.header');
var origOffsetY = header.offsetTop; function onScroll(e) {
window.scrollY >= origOffsetY ? header.classList.add('sticky') :
header.classList.remove('sticky');
} document.addEventListener('scroll', onScroll);

最新文章

  1. Java JVM proxy setting
  2. 替换jenkins上打包完成的安装包的方法
  3. Cauchy 级数浓缩判别法
  4. verilog 学习笔记
  5. yii2.0 输出url 注册js css文件
  6. 柯南君:看大数据时代下的IT架构(6)消息队列之RabbitMQ--案例(Publish/Subscribe起航)
  7. 华硕K55DR体验 - 显卡就是坑
  8. iptables安装
  9. Apollo 3.0 硬件与系统安装指南
  10. spring rest 容易被忽视的后端服务 chunked 性能问题
  11. Matlab信号处理基础
  12. How to write threats to validity?
  13. SPOJ - AMR11H (容斥原理)
  14. PHP获取客户端的IP地址
  15. 怎样为你的CSDN博客增加百度统计
  16. ch6-定制数据对象(打包代码和数据)
  17. Location对象的页面跳转方法介绍
  18. 数据库相关文章转载(2) MySQL自带的性能压力测试工具mysqlslap详解
  19. Java线程中断理解(interrupte)
  20. Linux kill 指定进程名的四种方式

热门文章

  1. java nio 抛出NonWritableChannelException异常
  2. (转)Dependency Walker使用说明
  3. Asp.Net 之 汉字转拼音
  4. 利用android studio gsonformat插件快速解析复杂json
  5. app卡顿问题检测--KMCGeigerCounter
  6. Fedora 19修改主机名
  7. 中国地图投影(实现Lambert投影)
  8. dedecms获取字段
  9. JDK Tools - xjc: 将 XML Schema 编译成 Java 类
  10. scala学习笔记:无参函数