当前位置: 首页 > news >正文

position: fixed和sticky的区别

React + CSS 实现的完整示例。


 position: fixed和sticky

App.jsx

import React from "react";
import "./styles.css";function App() {return (<div className="app">{/* 固定在页面顶部 */}<div className="fixed-header">🚀 我是 fixed 的导航栏</div><div className="spacer" /><div className="content"><p>下面是 sticky 示例区域:</p><div className="sticky-container"><div className="sticky-header">📌 我是 sticky 的标题</div><div className="box">内容块 1</div><div className="box">内容块 2</div><div className="box">内容块 3</div></div><p>继续往下滚动,观察 sticky 的表现。</p></div></div>);
}export default App;

styles.css

body, html {margin: 0;padding: 0;font-family: sans-serif;
}.app {position: relative;
}/* fixed 元素 */
.fixed-header {position: fixed;top: 0;left: 0;width: 100%;height: 50px;background-color: #ff5252;color: white;line-height: 50px;text-align: center;z-index: 1000;
}/* 避免被 fixed 元素遮挡 */
.spacer {height: 60px;
}/* 页面主要内容 */
.content {padding: 0 20px;
}/* sticky 父容器 */
.sticky-container {margin-top: 20px;height: 500px;overflow-y: auto;background: #f9f9f9;border: 2px solid #ccc;padding: 10px;
}/* sticky 元素 */
.sticky-header {position: sticky;top: 0;background: #4caf50;color: white;padding: 10px;font-weight: bold;
}/* 内容块 */
.box {height: 200px;background: #e0e0e0;margin: 10px 0;text-align: center;line-height: 200px;font-size: 20px;
}

  • .fixed-header 是固定在页面顶部的,无论怎么滚动都在上面

  • .sticky-header 会在滚动到视口顶部时“吸住”顶部,直到它的父容器滚动结束。


position: fixedposition: sticky
相对谁定位?相对 浏览器窗口 定位(viewport)相对 最近的可滚动祖先容器 定位
会不会滚动?不会滚动,一直固定在视口的某个位置在一定范围内滚动,滚动到一定位置后“粘住”
常用场景固定导航栏、浮动按钮、客服按钮页面内导航栏、表头固定、某区域内的锚点导航等

补充overflow

overflow-y: auto; 是 CSS 中控制 垂直方向(y轴)内容溢出时是否显示滚动条的属性设置

当内容高度超出容器时自动显示垂直滚动条;如果没有溢出,就不显示。


🔍 示例解释:

.my-container {height: 200px;overflow-y: auto;
}

如果你这个 .my-container 里放了很多内容超过 200px 的高度,就会在右侧自动出现滚动条,让你可以上下滚动内容。


📌 类似属性还有:

属性值含义说明
visible默认值,内容溢出会显示出来(不裁切、不滚动)
hidden内容溢出会被隐藏
scroll无论是否溢出,总是显示滚动条
auto内容超出时才出现滚动条

📘 补充:

  • overflow-y 只控制垂直方向;

  • overflow-x 控制水平方向;

  • overflow 同时控制 x 和 y 两个方向。


 

http://www.dtcms.com/a/276164.html

相关文章:

  • 子数组最大平均数 I
  • Dataset类代码实战
  • 【LeetCode 热题 100】25. K 个一组翻转链表——迭代+哨兵
  • Spring AOP 是如何生效的(入口源码级解析)?
  • SpringBootloggers未授权访问漏洞处理
  • Flink创建执行环境的三种方式,也是Flink搭建程序的第一步
  • [特殊字符] 实时数据洪流突围战:Flink+Paimon实现毫秒级分析的架构革命(附压测报告)——日均百亿级数据处理成本降低60%的工业级方案
  • Java应用全链路故障排查实战指南:从系统资源到JVM深度诊断
  • WebSocket:构建实时交互的 Web 应用
  • C# VB.NET多进程-管道通信,命名管道(Named Pipes)
  • C语言结构体
  • C++---<cctype>
  • 2025科大讯飞AI大赛<大模型技术方向>(Datawhale AI 夏令营)
  • 解决bash终端的路径名称乱码问题
  • Redis渗透思路总结
  • Theo Mandel的用户界面设计三大黄金规则
  • 新手向:使用Python自动化清理指定目录中的临时文件
  • 脉冲神经网络膜电位泄漏系数学习:开启时空动态特征提取的新篇章
  • 实验一 接苹果
  • 配置驱动开发:初探零代码构建嵌入式软件配置工具
  • Windows 用户账户控制(UAC)绕过漏洞
  • 时序分解 | Matlab基于GWO-FMD基于灰狼算法优化特征模态分解-2025-7-12
  • 实现Service和UI通信,并且能够手动回收的解决方案——共享ViewModel
  • 卫星通信终端天线的5种对星模式之二:DVB跟踪
  • C++类模板继承部分知识及测试代码
  • Final
  • 剑指offer——树:二叉树的深度
  • 【C++小白逆袭】内存管理从崩溃到精通的秘籍
  • JVM 中“对象存活判定方法”全面解析
  • JVM的垃圾回收算法和多种GC算法