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

28、absolute定位,如果父亲不是relative,那么是参考谁?

目录一、先给一个标准面试回答二、最关键的一句话三、什么叫“已定位祖先元素”四、如果父元素不是 relative到底参考谁情况 1父元素不是 relative但更上层祖先里有非 static 元素情况 2所有祖先都没有定位五、为什么很多人会说“参考 body”六、一个最适合面试的回答方式七、举个例子面试说出来更清楚示例 1参考最近定位祖先示例 2没有定位祖先八、面试官可能会追问什么1. 为什么一般给父元素加 position: relative2. absolute 会脱离文档流吗3. absolute 和 fixed 的区别九、一个高分回答模板十、简洁背诵版十一、一句话总结这是一个CSS 定位基础题但面试里如果只回答参考浏览器窗口这个回答有时候不够严谨因为它只说对了一部分。一、先给一个标准面试回答position: absolute的元素会相对于最近的已定位祖先元素进行定位。这里“已定位”指的是祖先元素的position不是static而是relative、absolute、fixed、sticky等。所以如果父元素不是relative它不会只看父元素而是会继续往上找最近的非static祖先。如果一路都没找到这样的祖先元素那最终会相对于初始包含块定位通常可以理解为页面视口。这段已经是比较标准、比较严谨的回答。二、最关键的一句话很多人记成absolute 一定相对父元素定位这是错的。更准确的说法是absolute不是相对“父元素”定位而是相对“最近的已定位祖先元素”定位。这里面试一定要说“最近的已定位祖先”这才是关键词。三、什么叫“已定位祖先元素”就是祖先元素设置了这些之一position: relativeposition: absoluteposition: fixedposition: sticky只要不是默认的position: static它就可能成为absolute子元素的参考系。四、如果父元素不是relative到底参考谁答案分两种情况。情况 1父元素不是relative但更上层祖先里有非static元素那就参考离它最近的那个非static祖先元素。例如div classgrandfather div classfather div classchild/div /div /div.grandfather { position: relative; } .father { position: static; } .child { position: absolute; top: 0; left: 0; }这里father不是定位元素grandfather是relative所以child最终参考的是grandfather情况 2所有祖先都没有定位那就相对于初始包含块定位。在大多数情况下面试里可以通俗地说成相对于浏览器视口 / 页面根元素但更严谨一点是相对于initial containing block初始包含块五、为什么很多人会说“参考 body”这是一个很常见的误区。很多教程会简化说没有定位父元素时absolute 相对 body 定位这句话在某些表现上看起来像对的但规范意义上并不严谨。更准确的说法是它不是简单“参考 body”而是参考初始包含块在浏览器里通常表现得接近视口所以面试里最好不要只说相对 body更推荐说如果没有最近的已定位祖先就相对于初始包含块定位通常可以近似理解为视口。这会显得你更专业。六、一个最适合面试的回答方式你可以按这个逻辑说absolute定位时先不会直接看父元素是不是父节点而是会从当前元素开始沿着祖先节点一层层往上找找到最近的position不为static的祖先元素作为定位参考。如果父元素不是relative但爷爷元素是relative那就参考爷爷。如果所有祖先都是默认的static那最终就会相对于初始包含块定位一般可以理解为视口。这个表述就很完整。七、举个例子面试说出来更清楚示例 1参考最近定位祖先div classbox1 div classbox2 div classbox3/div /div /div.box1 { position: relative; } .box2 { position: static; } .box3 { position: absolute; top: 10px; left: 20px; }这里.box3不参考.box2而是参考.box1。示例 2没有定位祖先div classbox1 div classbox2 div classbox3/div /div /div.box1 { position: static; } .box2 { position: static; } .box3 { position: absolute; top: 0; left: 0; }这里.box3会相对于初始包含块定位。八、面试官可能会追问什么1. 为什么一般给父元素加position: relative因为这样可以让子元素的absolute定位约束在父容器内不至于跑到更外层祖先或视口去。比如常见场景角标弹层按钮内图标图片上的绝对定位文案父元素加position: relative;子元素加position: absolute;这样最常见。2.absolute会脱离文档流吗会。这也是面试经常一起问的。你可以顺手补一句absolute元素会脱离普通文档流不再占据原来的布局空间所以可能会导致父元素高度塌陷通常需要额外处理。3.absolute和fixed的区别可以顺带答absolute相对最近已定位祖先fixed通常相对视口定位这也是高频追问。九、一个高分回答模板position: absolute的定位参考物不是固定的父元素而是最近的已定位祖先元素。这里“已定位”指的是祖先元素的position不是默认的static比如relative、absolute、fixed、sticky。所以如果父元素不是relative它会继续往上找最近的非static祖先如果爷爷是relative那就参考爷爷。如果所有祖先都没有设置定位那最终会相对于初始包含块定位通常可以近似理解为浏览器视口。所以实际开发里我们常给父元素加position: relative就是为了让绝对定位子元素以父容器作为参考系。十、简洁背诵版absolute不是一定相对父元素定位而是相对最近的非static祖先元素定位。如果父元素没设置定位就继续往上找如果所有祖先都没有定位就相对于初始包含块通常可以理解为视口。十一、一句话总结absolute看的是最近的已定位祖先不是单纯看父元素找不到就参考初始包含块。

相关文章:

28、absolute定位,如果父亲不是relative,那么是参考谁?

目录 一、先给一个标准面试回答 二、最关键的一句话 三、什么叫“已定位祖先元素”? 四、如果父元素不是 relative,到底参考谁? 情况 1:父元素不是 relative,但更上层祖先里有非 static 元素 情况 2:…...

10个Illustrator脚本工具:彻底改变你的设计工作流程

10个Illustrator脚本工具:彻底改变你的设计工作流程 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否厌倦了在Adobe Illustrator中重复执行繁琐的操作?…...

如何快速为视频添加字幕:VideoSrt自动字幕生成完整指南

如何快速为视频添加字幕:VideoSrt自动字幕生成完整指南 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 你是否正在为视频字…...

如何在绝地求生中配置罗技鼠标宏实现精准压枪:3分钟快速上手指南

如何在绝地求生中配置罗技鼠标宏实现精准压枪:3分钟快速上手指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 你是否在《绝地求生…...

Windows上安装安卓应用的终极指南:告别模拟器的轻量级解决方案

Windows上安装安卓应用的终极指南:告别模拟器的轻量级解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾在Windows电脑上想要运行安卓应用&a…...

Python Celery + FastAPI + Vue 全栈异步任务实战

本文将手把手带你搭建FastAPI(后端 API) Celery(异步任务队列) Redis(消息中间件 / 结果存储) Vue(前端) 的全栈异步项目,实现异步任务提交、任务状态查询、前端实时查看…...

如何在3分钟内让Jellyfin媒体库显示中文电影信息?

如何在3分钟内让Jellyfin媒体库显示中文电影信息? 【免费下载链接】jellyfin-plugin-metashark jellyfin电影元数据插件 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metashark MetaShark是一款专为Jellyfin设计的智能元数据插件&#xff…...

基于GEE与MODIS/006/MCD64A1的长时间序列林火动态监测与空间格局分析

1. 从零开始理解GEE与MODIS火点监测 第一次接触Google Earth Engine(GEE)平台时,我被它强大的云端计算能力震撼到了。这个由谷歌开发的免费平台,让普通研究者也能处理PB级的地理空间数据。而MODIS/006/MCD64A1数据集,就…...

数据结构--基于顺序表实现通讯录项目

欢迎阅读本篇学习笔记。 作为计算机专业的学习记录,本文将系统梳理通讯录项目的相关知识点,从基础概念到代码实现逐步展开,便于后续复习巩固,这里我们会用到上篇的知识,(如果其中有不懂的,大家可…...

企业级Windows日志监控架构设计:构建高可用分布式日志系统

企业级Windows日志监控架构设计:构建高可用分布式日志系统 【免费下载链接】visualsyslog Syslog Server for Windows with a graphical user interface 项目地址: https://gitcode.com/gh_mirrors/vi/visualsyslog 在当今复杂的IT环境中,企业级日…...

ECharts 从版本4升级到版本5的实战指南与常见问题解析

1. 为什么要升级到ECharts 5? 如果你还在使用ECharts 4,可能会遇到一些困扰:某些API突然报错、文档里找不到对应的配置项、或者看到控制台频繁弹出"DEPRECATED"警告。这些都是因为ECharts 5带来了大量优化和改动。我在去年负责公司…...

微信小程序文件缓存优化:从基础到高级的完整实践指南

1. 微信小程序文件缓存的核心挑战 第一次开发微信小程序时,我遇到了一个棘手的问题:用户反馈图片加载慢,尤其是重复访问时仍然需要等待。这才意识到文件缓存没做好,不仅影响用户体验,还浪费流量。微信小程序的缓存系统…...

高效百度网盘直链解析架构解析:从协议逆向到企业级部署方案

高效百度网盘直链解析架构解析:从协议逆向到企业级部署方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 百度网盘直链解析技术作为解决云存储资源访问效率瓶颈的…...

deepin25.10安装claude

deepin25.10安装claude 软件备注nodejscladue运行环境git版本控制国产大模型api-key商业策略cc switch管理大模型claduevscode如果不习惯命令行操作可以选择一个图画工具 准备 创建软件安装目录 mkdir ~/optnodejs 下载nodejs wget https://nodejs.org/dist/v24.14.1/node-v…...

LMS自适应滤波器算法:从原理到实践

1. LMS自适应滤波器:让机器学会"自动调音" 想象一下你戴着降噪耳机坐地铁,周围人声嘈杂,但耳机却能神奇地保留音乐声、消除环境噪音。这种"智能降噪"的核心技术之一,就是我们要聊的LMS自适应滤波器。它就像个…...

怎么鉴定用了Tritan材质?2026权威指南:从感官体验到官方溯源

在健康消费成为主流的今天,Tritan材质凭借其“近似玻璃般透亮、塑料般坚韧”的特性,成为水杯、奶瓶等日用品的“明星材料”。然而,随着市场热度攀升,部分商家开始用普通PET、劣质回收料冒充Tritan。究竟怎么鉴定用了Tritan材质&am…...

HunterPie终极指南:如何通过现代叠加层提升《怪物猎人世界》游戏体验

HunterPie终极指南:如何通过现代叠加层提升《怪物猎人世界》游戏体验 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/h…...

歌词滚动姬:3分钟学会制作专业LRC歌词的免费神器

歌词滚动姬:3分钟学会制作专业LRC歌词的免费神器 【免费下载链接】lrc-maker 歌词滚动姬|可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 还在为制作歌词同步而烦恼吗?每次都要反复暂…...

京东云鼎环境配置与API安全接入实战:ISV服务商如何搞定数据加密与商家授权

京东云鼎环境配置与API安全接入实战:ISV服务商如何搞定数据加密与商家授权 在电商生态系统中,京东开放平台为ISV(独立软件开发商)服务商提供了强大的技术支撑和商业机会。不同于普通开发者,ISV服务商需要处理多商家数据…...

【Gin】参数处理练习题

学生编号动态获取接口 题目描述 使用 Gin 框架编写 Web 服务,定义 GET 路由 /student/:id,通过 c.Param("id") 获取学生编号,返回字符串:学生编号:xxx,立志成才,报效祖国&#xff0…...

泊松-高斯模型:从理论到实践,构建更真实的图像噪声模拟

1. 泊松-高斯模型的核心原理 当你用手机在夜晚拍照时,是否发现照片总有些奇怪的颗粒感?这就是图像噪声在作祟。泊松-高斯模型就像一位"噪声翻译官",能把相机传感器接收到的光信号转化为我们看到的带噪图像。这个模型之所以重要&am…...

如何用MPC-HC打造完美的家庭影院体验:终极Windows播放器指南

如何用MPC-HC打造完美的家庭影院体验:终极Windows播放器指南 【免费下载链接】mpc-hc MPC-HCs main repository. For support use our Trac: https://trac.mpc-hc.org/ 项目地址: https://gitcode.com/gh_mirrors/mpc/mpc-hc 想要在Windows电脑上享受流畅、高…...

如何利用CompressO实现高效本地视频图片压缩:完整指南与实战技巧

如何利用CompressO实现高效本地视频图片压缩:完整指南与实战技巧 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/c…...

Zotero重复文献智能合并方案:解决学术文献库数据冗余问题的自动化工具

Zotero重复文献智能合并方案:解决学术文献库数据冗余问题的自动化工具 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 在学术研究过…...

杰理之用cis 实现对讲机功能【篇】

增加回音消除算法节点。...

ChatTTS在非遗传承场景应用:老艺人语音风格复现与濒危方言保存实践

ChatTTS在非遗传承场景应用:老艺人语音风格复现与濒危方言保存实践 1. 引言:当技术遇见传承 想象一下,一位年过八旬的皮影戏老艺人,用他独特的嗓音和语调,讲述着流传百年的故事。他的声音里不仅有词句,还…...

5分钟搞定Windows开机画面:HackBGRT终极定制指南

5分钟搞定Windows开机画面:HackBGRT终极定制指南 【免费下载链接】HackBGRT Windows boot logo changer for UEFI systems 项目地址: https://gitcode.com/gh_mirrors/ha/HackBGRT 厌倦了每次开机都看到千篇一律的Windows徽标?想让电脑启动的第一…...

CentOS Stream 9国内Yum源更换全攻略:清华大学源配置详解(附常见问题解决)

CentOS Stream 9国内Yum源高效配置指南:清华大学源实战详解 最近在帮团队部署新的开发环境时,发现CentOS Stream 9的默认Yum源下载速度实在让人抓狂。一个简单的Docker安装就要等上半小时,严重影响工作效率。经过多次实践验证,切换…...

蓝驰创投完成39亿元第四期双币基金募资:已投银河通用与智元

雷递网 乐天 4月13日蓝驰创投今日宣布完成第四期双币基金的募集,基金总规模约5.6亿美元(约39亿元)。至此,蓝驰创投在管资产总规模已接近200亿元人民币。蓝驰创投管理合伙人陈维广表示:“感谢新老投资人的信任。我们始终…...

CentOS8 实战指南:FTP服务三种安全模式配置详解

1. CentOS8下FTP服务基础认知 第一次在CentOS8上折腾FTP服务时,我被各种专业术语搞得晕头转向。后来才发现,FTP(File Transfer Protocol)本质上就是个"文件快递员",负责在网络中搬运文件。而vsftpd&#xff…...