”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 当绝对定位嵌套在另一个绝对定位元素中时,绝对定位如何工作?

当绝对定位嵌套在另一个绝对定位元素中时,绝对定位如何工作?

发布于2024-11-08
浏览:421

How Does Absolute Positioning Work When Nested Within Another Absolutely Positioned Element?

绝对定位中的绝对定位

使用网页布局时,通常使用绝对定位等定位技术来精确排列元素一页。但是,当您尝试在本身绝对定位的元素内应用绝对定位时,就会出现潜在的问题。

假设您有一个具有相对定位 (position:relative) 的容器元素 (1st div),它允许您相对于其自身位置定位子元素。在此容器中,您有一个绝对定位的元素 (2nd div) 和嵌套在第二个 div 内的第三个绝对定位元素 (3rd div)。

在这种情况下,您可能期望第三个 div 绝对定位相对于第一个 div,即使第二个 div 也是绝对定位的。然而,事实并非如此。

了解定位层次结构

这种行为的原因在于绝对定位的工作方式。当一个元素被给予绝对定位时,它会从文档的正常流中删除,而是相对于其最近的定位祖先进行定位。在这种情况下,第2个div是第3个div最近的定位祖先,无论第1个div是否也具有相对定位。

这意味着第3个div的绝对位置是相对于第2个div计算的div 的位置,而不是第一个 div 的位置。因此,第 3 个 div 将绝对定位在第 2 个 div 内,而不是第 1 个 div。

备用定位技术

如果您希望第 3 个 div 是相对于第一个 div 绝对定位,您需要将其设为第一个 div 的直接子级。这将允许第三个 div 继承第一个 div 的绝对位置并进行相应的定位。

需要注意的是,position:absolute 会像position:relative 一样重置子级的相对位置。因此,如果相对定位的父元素中有多个绝对定位的子元素,则它们的位置将相对于其最近的绝对定位的祖先独立计算。

最新教程 更多>
  • C 中“void”的大小是多少?
    C 中“void”的大小是多少?
    问题:理解“void”的未定义大小在 C 编程中,关键字“void”表示类型的缺失。这就提出了一个问题:“void”的大小是多少?答案:类型“void”在 C 中没有定义大小。它不是一个对象或指针的有效类型,因此尝试这样使用它会导致编译错误。具体来说,语句:void n;是无效的,因为它试图声明一个...
    编程 发布于2024-12-22
  • 为什么Python这种解释性语言会生成.pyc文件?
    为什么Python这种解释性语言会生成.pyc文件?
    如果Python是解释型语言,为什么会存在.pyc文件?虽然Python通常被称为解释型语言,但它并不是严格准确。解释只是其实现的一个层面。从语言角度看将Python定义为解释性语言是指其底层语言规范,与具体实现不同。 Python 如何解释源代码的实现细节可能会根据所使用的特定 Python 解释...
    编程 发布于2024-12-22
  • 在带有 Echo 和 Return 的 PHP 连接中何时使用逗号与句点?
    在带有 Echo 和 Return 的 PHP 连接中何时使用逗号与句点?
    标点符号在 PHP 连接中的重要性:句点和逗号与回显和回车的研究在 PHP 中,连接起着至关重要的作用在字符串操作中。但是,在与 echo 和 return 等不同结构连接时选择使用句点或逗号可能会导致意外结果。让我们探讨一下这种区别的复杂性。理解 Echo 和 ReturnEcho 是一种为输出数...
    编程 发布于2024-12-22
  • 如何在 PHP 中追加数组而不进行基于键的复制?
    如何在 PHP 中追加数组而不进行基于键的复制?
    优雅地追加数组,无需基于键的重复在 PHP 数组操作领域,将一个数组追加到另一个数组而不覆盖其键可以提出挑战。许多开发人员求助于使用 array_push 或数组联合运算符 ( ) 等方法,这通常会产生不期望的结果。但是,存在一种优雅的解决方案,可以无缝合并数组,同时保留其密钥完整性。输入数组合并。...
    编程 发布于2024-12-22
  • C++ 程序支持可变长度数组 (VLA) 吗?
    C++ 程序支持可变长度数组 (VLA) 吗?
    C 中的可变长度数组:揭穿的神话C 中的可变长度数组 (VLA) 的前景一直是争论的主题多年来。虽然 VLA 已成为 C99 标准的组成部分,但它们在 C 中的存在仍然是一个问号。C99 规范明确允许声明可变长度数组,其中数组的大小未在编译时而是在执行期间动态确定。然而,C 对 VLA 的立场并不那...
    编程 发布于2024-12-22
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-12-22
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-12-22
  • 插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入记录时如何解决“一般错误:2006 MySQL 服务器已消失”介绍:将数据插入 MySQL 数据库有时会导致错误“一般错误:2006 MySQL 服务器已消失”。当与服务器的连接丢失时会出现此错误,通常是由于 MySQL 配置中的两个变量之一所致。解决方案:解决此错误的关键是调整wait_tim...
    编程 发布于2024-12-22
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-12-22
  • 如何高效地将数据从SQL Server 2005迁移到MySQL?
    如何高效地将数据从SQL Server 2005迁移到MySQL?
    将数据从 SQL Server 2005 导出到 MySQL在数据迁移领域,从 SQL Server 2005 到 MySQL 的过渡可能会带来挑战。一项特别艰巨的任务是提取存储在近 300 个表中的大量数据并将其转换为兼容的 MySQL 数据库。使用 bcp 的局限性,例如无效的 CSV 格式以及...
    编程 发布于2024-12-22
  • 为什么我无法通过 Ruby on Rails 3 应用程序中的套接字文件连接到 MySQL 服务器?
    为什么我无法通过 Ruby on Rails 3 应用程序中的套接字文件连接到 MySQL 服务器?
    使用套接字连接在 Ruby on Rails 3 中建立 MySQL 连接在 macOS 上的 Ruby on Rails 3 环境中管理数据库连接时,用户尝试执行迁移时可能会遇到以下错误:“无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器” (2)”。此错...
    编程 发布于2024-12-22
  • 从代码到聊天:帮助我免费部署我的 Node.js 和 React 应用程序!
    从代码到聊天:帮助我免费部署我的 Node.js 和 React 应用程序!
    大家好, 我很高兴分享我已经使用 Node.js、React 和 Socket.io 开发了一个聊天应用程序! ?这是一次令人难以置信的学习经历,我对它的结果感到自豪。该应用程序允许实时消息传递,并且我已经实现了用户身份验证和聊天室等功能。 现在我已经构建了它,我希望免费部署它,但我可以使用一些指导...
    编程 发布于2024-12-22
  • 为什么 `mysqli_query()` 返回“警告:mysqli_query() 期望参数 1 为 MySQLi,给定 null”?
    为什么 `mysqli_query()` 返回“警告:mysqli_query() 期望参数 1 为 MySQLi,给定 null”?
    理解“警告:mysqli_query() 期望参数 1 为 MySQLi,在中给出 null”错误在您尝试创建自定义CMS,您遇到以下错误消息:“警告:mysqli_query() 期望参数 1 为 MySQLi, null Give in"错误原因此错误表明执行 SQL 查询的 mysq...
    编程 发布于2024-12-22
  • 为什么接口对于掌握 Java 中的面向对象编程至关重要?
    为什么接口对于掌握 Java 中的面向对象编程至关重要?
    接口:增强 OOP 的桥梁在 Java 世界中,了解接口的原因、内容和方式对于掌握面向对象编程。这里有一个全面的细分:什么是接口?接口是纯抽象的集合——没有实现和最终字段的抽象方法。这意味着接口定义契约而不是提供代码片段。为什么使用接口?接口提供了几个好处:合同执行: 他们确保实施类遵守特定的解耦:...
    编程 发布于2024-12-22
  • 像 V8 和 JavaScriptCore 这样的 JavaScript 引擎是否使用字符串实习?
    像 V8 和 JavaScriptCore 这样的 JavaScript 引擎是否使用字符串实习?
    JavaScript引擎会使用String Interning吗?简介:在编程中,string interning是指重用现有字符串对象的过程而不是为相同的字符串创建新的字符串。这种优化技术旨在减少内存使用并提高性能。问题是,常见的 JavaScript 引擎,包括 V8 和 WebKit 的 Ja...
    编程 发布于2024-12-22

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3