千家信息网

css如何实现吸附布局

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,小编给大家分享一下css如何实现吸附布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!吸附布局吸附布局指相对视窗任何滚动都
千家信息网最后更新 2024年11月24日css如何实现吸附布局

小编给大家分享一下css如何实现吸附布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

吸附布局

吸附布局指相对视窗任何滚动都能占据特定位置的占位布局。视窗滚动到特定位置,布局固定在该位置,后续不随视窗滚动而滚动。该布局产生的效果俗称吸附效果,是一种常见网页效果。譬如吸顶效果吸底效果都是该范畴,经常在跟随导航移动广告悬浮提示等应用场景里出现。

jQuery时代就有很多吸附效果插件,现在三大前端框架也有自身第三方的吸附效果组件。它们都有着共通的实现原理:监听scroll事件,判断scrollTop目标节点的位置范围,符合条件则将目标节点position声明为fixed使目标节点相对于视窗定位,让用户看上去就像钉在视窗指定位置上。

JS实现吸附效果的代码在网上一搜一大堆,更何况笔者喜欢耍CSS,在此就不贴相关的JS代码了。在此推荐一个很少见很少用的CSS属性position:sticky。简单的两行核心CSS代码就能完成十多行核心JS代码的功能,何乐而不为呢。

简单回顾position属性值,怎样用就不说了,大家应该都熟悉。

取值功能版本
inherit继承2
static标准流2
relative相对定位2
absolute绝对定位2
fixed固定定位2
sticky粘性定位3

当值为sticky时将节点变成粘性定位粘性定位相对定位固定定位的结合体,节点在特定阈值跨越前为相对定位,跨越后为固定定位

  • Top 1
  • Top 2
  • Normal
  • Bottom 1
  • Bottom 2
.adsorption-position {    overflow: auto;    position: relative;    width: 400px;    height: 280px;    outline: 1px solid #3c9;    ul {        padding: 200px 0;    }    li {        position: sticky;        height: 40px;        line-height: 40px;        text-align: center;        color: #fff;        &:nth-child(1) {            top: 0;            z-index: 9;            background-color: #f66;        }        &:nth-child(2) {            top: 40px;            z-index: 9;            background-color: #66f;        }        &:nth-child(3) {            background-color: #f90;        }        &:nth-child(4) {            bottom: 0;            z-index: 9;            background-color: #09f;        }        &:nth-child(5) {            bottom: 40px;            z-index: 9;            background-color: #3c9;        }    }}

两行核心CSS代码分别是position:stickytop/bottom:npx。上述5个节点都声明position:sticky,但由于top/bottom赋值有所不同就产生不同吸附效果。

细心的同学可能发现这些节点在某些滚动时刻处于相对定位,在特定滚动时刻处于固定定位

  • 第1个

  • top0px,滚动到容器顶部就固定

  • 第2个

  • top40px,滚动到距离容器顶部40px就固定

  • 第3个

  • :未声明top/bottom,就一直保持相对定位

  • 第4个

  • bottom40px,滚动到距离容器底部40px就固定

  • 第5个

  • bottom0px,滚动到容器底部就固定

当然,换成leftright也一样能实现横向的吸附效果

值得注意,粘性定位的参照物并不一定是position:fixed。当目标节点的任意祖先节点都未声明position:relative|absolute|fixed|sticky,才与position:fixed表现一致。当离目标节点最近的祖先节点声明position:relative|absolute|fixed|sticky目标节点就相对该祖先节点产生粘性定位。简单来说确认参照物的方式与position:absolute一致。

兼容性勉强还行,近2年发版的浏览器都能支持,SafariFirefox的兼容性还是挺赞的。有吸附效果需求的同学建议一试,要兼容IExplorer就算了。期待该属性有更好的发展,毕竟吸附布局真的是一种常见布局。

以上是"css如何实现吸附布局"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

定位 节点 吸附 效果 布局 目标 代码 位置 粘性 视窗 容器 属性 核心 祖先 篇文章 不同 一致 兼容性 内容 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 vr网络安全之旅 共享柜子规范功能软件开发厂家 数据库可以用分布式吗 杰理蓝牙软件开发 服务器地址列表 软件开发公司资质具备 毕业设计参考文献软件开发 重庆旗福网络技术有限公司 莱山区管理系统软件开发外包公司 两列有部分重复数据库 智慧消防平台系统软件开发 校园一卡通网络安全设计与实现 建党100周年网络安全预案 工业网络技术需要学习电工吗 华强北新亚洲电子商城服务器 乡镇网络安全培训资料 数据库中连接两个表的方法 王者荣耀里的数据库 搜题软件开发的目的 数据库与应用接口怎么画 数据库应用技术安装 大学生网络安全课程心得 开源监控oracle数据库 广西尖子互联网科技有限公司 网络安全法与什么并重 软件开发流程 系统部署 如何获得阿里云服务器账号 互联网公司用什么软件开发票 手机软件开发的技术环境 实验7数据库安全性控制
0