CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

本文主要是介绍CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布...

css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关系。以下是 static、rjselative、absolute、fixed、sticky 的详细对比和应用场景:

1. static(默认值)

  • 行为
    • 元素遵循正常文档流(Normal Flow),即按照 html 的顺序依次排列。
    • top、right、bottom、left、z-index 属性无效。
  • 应用场景
    • 默认布局方式,适用于无需特殊定位的普通元素。
  • 示例
<div class="box">Static(默认)</div>

2. relative(相对定位)

  • 行为
    • 元素保留在文档流中的原始位置(其他元素不会填补它的空白)。
    • 通过 top、right、bottom、left 相对于自身原始位置偏移。
    • 可结合 z-index 控制层叠顺序。
  • 应用场景
    • 微调元素位置(如图标偏移)、作为 absolute 子元素的定位参照。
  • 示例
.box php{
  position: relative;
  top: 10px;  /* 向下偏移 10px */
  left: 20px; /* 向右偏移 20pxandroid */
}

3. absolute(绝对定位)

  • 行为
    • 元素脱离文档流(其他元素会填补它的空白)。
    • 相对于最近的定位祖先元素(position 非 static)进行定位。
    • 若无定位祖先,则相对于 (或初始包含块)。
    • 可结合 z-index 控制层叠顺序。
  • 应用场景TFevCidTv
    • 下拉菜单、模态框、浮动按钮等需要脱离文档流的组件。
  • 示例
.parent {
  position: relative; /* 作为子元素的定位基准 */
}
.child {
  position: absolute;
  top: 0;
  right: 0;
}

4. fixed(固定定位)

  • 行为
    • 元素脱离文档流。
    • 相对于浏览器视口(Viewport)定位,滚动页面时位置不变。
    • 可结合 z-index 控制层叠顺序。
  • 应用场景
    • 固定导航栏、悬浮广告、返回顶部按钮等需要始终可见的元素。
  • 示例
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

5. sticky(粘性定位)

  • 行为
    • 元素在特定阈值内表现为 relative,超过阈值后变为 fixed。
    • 相对于最近的滚动祖先(或视口)进行定位。
    • 需指定 top、right、bottom 或 left 中的一个值作为阈值。
  • 应用场景
    • 吸顶导航栏、表头固定等需要动态切换定位的场景。
  • 示例
.header {
  position: sticky;
  top: 20px; /* 当滚动到距视口顶部 20px 时固定 */
}

对比总结

定位方式脱离文档流?定位基准常见场景是否支持 z-index?
static默认布局
relative自身原始位置微调位置、作为定位容器
absolute最近的定位祖先或视口弹出层、浮动元素
fixed视口固定导航栏、悬浮按钮
sticky否(阈值前)最近的滚动祖先或视口吸顶效果、动态固定元素

关键区别

  • 脱离文档流:
    • absolute 和 fixed 会脱离文档流,影响其他元素的布局。
    • relative 和 sticky 不会脱离文档流。
  • 定位基准:
    • absolute 相对于最近的定位祖先。
    • fixed 相对于视口。
    • sticky 相对于最近的滚动容器。
  • 滚动行为:
    • fixed 元素始终固定在视口中,不随页面滚动。
    • sticky 元素在阈值范围内随页面滚动,超过阈值http://www.chinasem.cn后固定。

实际应用技巧

  • 层叠上下文:
    • 非 static 定位的元素会创建层叠上下文,z-index 仅在当前上下文中生效。
  • 性能优化
    • fixed 和 sticky 可能导致浏览器重绘(Repaint),需谨慎使用。
  • 移动端适配:
    • fixed 在移动端可能受键盘弹出或浏览器行为影响,需测试兼容性。

到此这篇关于CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比的文章就介绍到这了,更多相关CSS Static、Relative、Absolute、Fixed、Sticky内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章,希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155094

相关文章

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用