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

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)