CSS3 sticky 粘性布局

在 CSS 中位置属性 position 大家对 relative、fixed、absolute 已经用的非常熟悉了,在 CSS3 中出现了 sticky 这个特殊的定位方式。

功能描述

在 W3C 标准中 sticky 功能描述:元素的位置基于用户滚动位置定位,sticky 定位的元素位置在 relative 和 fixed 之间切换,具体取决于滚动位置。它会被相对定位,直到浏览器可是区域中满足给定的偏移位置,否则会被粘住到固定的位置。(W3C Positon)

如何理解它的定位方式呢,我们直接上 Demo:

<!DOCTYPE html>
<html>
<head>
<style>
.title {
    position: sticky;
    top: 0;
    padding: 5px;
    background-color: #ccc;
}
.item {
    height: 50px;
    line-height: 50px;
}
</style>
</head>
<body>
    <h1>Contacts</h1>
    <div class="title">A</div>
    <div class="item">啊三</div>
    <div class="item">啊五</div>
    <div class="item">apple</div>
    <div class="item">Alph</div>
    <div class="item">ABC</div>
    <div class="item">apple</div>
    <div class="item">Alph</div>
    <div class="item">ABC</div>
    <div class="item">apple</div>
    <div class="item">Alph</div>
    <div class="item">ABC</div>
    <div class="title">B</div>
    <div class="item">Banana</div>
    <div class="item">Back</div>
    <div class="item">Banana</div>
    <div class="item">Back</div>
    <div class="item">Banana</div>
    <div class="item">Back</div>
    <div class="item">Banana</div>
    <div class="item">Back</div>
    <div class="item">Banana</div>
    <div class="item">Back</div>
    <div class="title">C</div>
    <div class="item">China</div>
    <div class="item">Cat</div>
    <div class="item">Cookie</div>
    <div class="item">Cake</div>
    <div class="item">Color</div>
    <div class="item">China</div>
    <div class="item">Cat</div>
    <div class="item">Cookie</div>
    <div class="item">Cake</div>
    <div class="item">Color</div>
</body>
</html>

运行上面的 Demo,大家会看到和 iPhone 通讯录类似的效果,通讯录的标题(首字母),会随着屏幕的滚动固定到屏幕的顶部。

兼容性

它的兼容性比起 relative、fixed、absolute 相对差一些 caniuse:

css-sticky.jpg

最后

这种新的布局方式,让我们 web 前端又有了新的设计方式,虽然兼容性有待提高,但是随着浏览器的迭代更新,它会被越来越多的浏览器厂商支持,它的确给我们的开发更佳的简单。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,356评论 1赞 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,233评论 1赞 45
  • 大家好,我是IT修真院深圳分院第06期学员,一枚正直善良的web程序员。 今天给大家分享一下,修真院官网 CSS任...
    不二先森zZ阅读 4,569评论 0赞 2
  • 天黑了以后,华灯初上,灯光缀入千百人家。我们这一面的世界赌气的背向太阳,却也给我们留下了一大片用来蹲下发呆思考的阴...
    丘神阅读 1,079评论 0赞 2
  • 钟子涵阅读 252评论 0赞 0

友情链接更多精彩内容