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 OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1