【CSS】定位 ③ ( 绝对定位 | 父容器有定位相对于父容器定位 | 父容器没有定位相对于浏览器进行定位 )

news2025/1/20 10:58:59

文章目录

  • 一、绝对定位
  • 二、标准流下的父容器与子元素关系
    • 1、标准流下父容器与子容器代码
    • 2、移动父容器后的效果
  • 三、子元素设置绝对定位与父容器是否有定位的效果对比
    • 1、父容器没有定位的情况下为子容器添加定位
    • 2、父容器有定位的情况下为子容器添加定位
    • 3、父容器没有定位爷爷容器有定位的情况





一、绝对定位



绝对定位 是以 父级元素 为基准 , 设置 边偏移 ;

为 子元素 添加 绝对定位 ,

  • 如果 父容器有定位 , 则相对于父容器的坐标进行定位 ;
  • 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位 ;
  • 再次引申 , 如果父容器没有定位 , 则查找父容器的父容器 是否有定位 , 如果有则相对于爷爷容器进行定位 ;

上述 父容器 的定位 不一定是 绝对定位 , 其它类型的定位也可以 , 在本博客的示例中 , 使用的就是 相对定位 ;

为父容器添加了相对定位 , 子容器也会相对于 父容器 进行定位 ;





二、标准流下的父容器与子元素关系




1、标准流下父容器与子容器代码


标准流 父容器 中 包含一个 标准流 子元素盒子 :

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位示例</title>
	<style>
		.father {
			/* 父容器盒子 */
			width: 400px;
			height: 400px;
			background-color: pink;
		}
		.son {
			/* 子容器盒子 */
			width: 200px;
			height: 200px;
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>
</html>

展示效果 :

在这里插入图片描述


2、移动父容器后的效果


移动 标准流 父容器盒子 , 发现子容器也随着 父容器 一起移动 , 这种情况下 父容器 与 子容器 是绑定到一起的 ;

为父容器设置 100 像素的外边距 , 此时 父容器 与 嵌套的子元素 一起向下和向右移动了 100 像素 ;

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位示例</title>
	<style>
		.father {
			/* 父容器盒子 */
			width: 400px;
			height: 400px;
			background-color: pink;
			/* 设置 100 像素外边距 */
			margin: 100px;
		}
		.son {
			/* 子容器盒子 */
			width: 200px;
			height: 200px;
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>
</html>

展示效果 :

在这里插入图片描述





三、子元素设置绝对定位与父容器是否有定位的效果对比



在上面代码的基础上 , 为 子元素 添加绝对定位 数据 , 分别设置 顶部 和 左侧 50 像素的偏移量 ;

			/* 绝对定位 */
			position: absolute;
			/* 顶部偏移量 50 像素 */
			top: 50px;
			/* 左侧偏移量 50 像素 */
			left: 50px;

为 子元素 添加 绝对定位 ,

  • 如果 父容器有定位 , 则相对于父容器的坐标进行定位 ;
  • 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位 ;

1、父容器没有定位的情况下为子容器添加定位


下面这种情况就是 父容器没有定位 , 子元素 相对于浏览器进行定位 ;


完整代码示例 :

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位示例</title>
	<style>
		.father {
			/* 父容器盒子 */
			width: 400px;
			height: 400px;
			background-color: pink;
			/* 设置 100 像素外边距 */
			margin: 100px;
		}
		.son {
			/* 子容器盒子 */
			width: 200px;
			height: 200px;
			background-color: red;
			/* 绝对定位 */
			position: absolute;
			/* 顶部偏移量 50 像素 */
			top: 50px;
			/* 左侧偏移量 50 像素 */
			left: 50px;
		}
	</style>
</head>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>
</html>

展示效果 : 在下面的效果中 , 父容器没有定位信息 , 子容器相对于浏览器进行定位 ;

在这里插入图片描述

2、父容器有定位的情况下为子容器添加定位


在上面代码的基础上 , 为父容器添加 relative 相对定位 , 不设置边偏移 , 也就是位置相对于标准流的原始位置偏移 0 位置 , 不移动位置 ;

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位示例</title>
	<style>
		.father {
			/* 父容器盒子 */
			width: 400px;
			height: 400px;
			background-color: pink;
			/* 设置 100 像素外边距 */
			margin: 100px;
			/* 为父容器添加相对定位 */
			position: relative;
		}
		.son {
			/* 子容器盒子 */
			width: 200px;
			height: 200px;
			background-color: red;
			/* 绝对定位 */
			position: absolute;
			/* 顶部偏移量 50 像素 */
			top: 50px;
			/* 左侧偏移量 50 像素 */
			left: 50px;
		}
	</style>
</head>
<body>
	<div class="father">
		<div class="son"></div>
	</div>
</body>
</html>

在这里插入图片描述

3、父容器没有定位爷爷容器有定位的情况


如果父容器没有定位 , 爷爷容器有定位 , 那么以爷爷容器作为定位参考 , 忽略父容器影响 ;

代码示例 :

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>绝对定位示例</title>
	<style>
		.grandfather {
			/* 爷爷容器盒子 */
			width: 500px;
			height: 500px;
			background-color: skyblue;
			/* 为爷爷容器添加相对定位 */
			position: relative;
		}
		.father {
			/* 父容器盒子 */
			width: 300px;
			height: 300px;
			background-color: pink;
			/* 设置 100 像素外边距 */
			margin: 100px;
			/* 为父容器添加相对定位 */
			/*position: relative;*/
		}
		.son {
			/* 子容器盒子 */
			width: 200px;
			height: 200px;
			background-color: red;
			/* 绝对定位 */
			position: absolute;
			/* 顶部偏移量 50 像素 */
			top: 50px;
			/* 左侧偏移量 50 像素 */
			left: 50px;
		}
	</style>
</head>
<body>
	<div class="grandfather">
		<div class="father">
			<div class="son"></div>
		</div>
	</div>
</body>
</html>

展示效果 :

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Doris(2):Doris编译部署

1 Doris编译 Apache Doris提供直接可以部署的版本压缩包&#xff1a;https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5 也可以自行编译压缩包后使用&#xff08;推荐&#xff09; 1.1 使用 Docker 开发镜像编译&#xff08;推荐&#xff09; 这个是官方文档推荐的&#xff0c;…

4.15搞力扣哈哈

1. 1023. 驼峰式匹配 难度中等107收藏分享切换为英文接收动态反馈 如果我们可以将小写字母插入模式串 pattern 得到待查询项 query&#xff0c;那么待查询项与给定模式串匹配。&#xff08;我们可以在任何位置插入每个字符&#xff0c;也可以插入 0 个字符。&#xff09; 给…

map原理

map源码结构体&#xff1a; type hmap struct {count int // 元素的个数B uint8 // buckets 数组的长度就是 2^B 个overflow uint16 // 溢出桶的数量​buckets unsafe.Pointer // 2^B个桶对应的数组指针oldbuckets unsafe.Pointer // 发生扩容时&#xff0…

系统学习Git

Git目录工作区、暂存区和版本库分别是什么&#xff1f;Git常用命令有哪些&#xff1f;Git是如何进行分支管理的&#xff1f;Git如何查看提交历史&#xff1f;实践出真知&#xff01;报错fatal: pathspec text1.txt did not match any filesGit 是一个开源的分布式版本控制系统工…

【k8s完整实战教程4】使用kubesphere部署项目到k8s

系列文章&#xff1a;这个系列已完结&#xff0c;如对您有帮助&#xff0c;求点赞收藏评论。 读者寄语&#xff1a;再小的帆&#xff0c;也能远航&#xff01; 【k8s完整实战教程0】前言【k8s完整实战教程1】源码管理-Coding【k8s完整实战教程2】腾讯云搭建k8s托管集群【k8s完…

SSM学习记录4:SSM整合(注释方式 + SprigMVC项目 + 2022发布版本IDEA)

SSM整合 整合中Tomcat等配置与前面学习相同 注&#xff1a;SpringMvcConfig里扫描的用Configuration注解的组件可以装载SpringConfig里扫描的组件&#xff0c;而SpringMvc不可以装载SpringMvcConfig里扫描的组件&#xff0c;相同配置类中扫描的组件可以相互装载 1.添加依赖↓ …

PLATO: Pre-trained Dialogue Generation Model with Discrete Latent Variable论文学习

一、大纲内容 二、详细内容 Abstract ○ 对话生成模型可以用于闲聊、知识对话、对话问题生成 ○ 本文 ■ 构建了一个灵活的attention机制&#xff0c;充分的促进了单向和双向的语言生成模型 ■ 介绍了一个离散的潜变量&#xff0c;较好的解决了一问多答的问题 ■ 上述两个结构…

DAY 36 文本处理命令awk

awk的概述 awk&#xff1a; 在 Linux/UNIX 系统中&#xff0c;awk 是一个功能强大的编辑工具&#xff0c;逐行读取输入文本&#xff0c; 默认以空格或tab键作为分隔符作为分隔&#xff0c;并按模式或者条件执行编辑命令 awk信息的读入也是逐行指定的匹配模式进行查找&#x…

Unity ——使用贝塞尔曲线对三维管状物体进行弯曲

参考链接&#xff1a;【Unity】弹性鱼竿简单实现-通过贝塞尔曲线修改Mesh - 简书 参考论文&#xff1a;吴晓亮, 黄襄念. Unity 中使用贝塞尔曲线对三维物体进行弯曲[J]. 现代计算机, 2016 (5): 57-59. unity项目下载&#xff1a;https://download.csdn.net/download/weixin_4…

时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测

时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测 目录时间序列 | MATLAB实现CNN-GRU-Attention时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现CNN-GRU-Attention时间序列预测&#xff0c;CNN-GRU结合注意力机制时间序列预测。 模型描…

涨点技巧:卷积变体DCNV2引入Yolov8,助力小目标涨点

1.DCN V2介绍 DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems 论文:https://arxiv.org/abs/2008.13535 作者通过在DCN的基础上,增加了2个创新点,分别是调制模块和使用多个调制后的DCN模块,从形成了DCN的升级版…

解码营养行业新趋势 2023晶球益生菌与肠内营养健康高峰论坛圆满落幕

后疫情时代&#xff0c;国人自身健康管理意识日益提高&#xff0c;越来越多的人认识到到微生物组、营养吸收与免疫健康的密切联系&#xff0c;并逐渐认可微生态和肠内营养在临床应用过程中的积极作用&#xff0c;使得营养治疗研究成果进一步落地转化。消费升级新时代&#xff0…

一文带你读懂,这三个交换机层级的区别和联系。

01 第二层交换机 OSI参考模型的第二层叫做数据链路层&#xff0c;第二层交换机通过链路层中的MAC地址实现不同端口间的数据交换。 第二层交换机主要功能&#xff0c;就包括物理编址、错误校验、帧序列以及数据流控制。 因为这是最基本的交换技术产品&#xff0c;目前桌面型交…

CDN到期不想续费?!MINIO救个场!

一、安装MINIO 下载 wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230413030807.0.0.x86_64.rpm -O minio.rpm 安装 yum install minio.rpm 二、启动 MinIO 服务器 创建启动实例目录 mkdir ~/minio 启动 MInIO实例 minio server ~/minio -…

解析hash(散列)数据结构

前言 在学习完map、set这两个由红黑树构成的容器后&#xff0c;我们来到了这里hash&#xff0c;首先我们要有一个基础的认知——哈希和map与set的仅在使用时的差别区别&#xff1a;前者内部的元素没有序&#xff0c;而后者有序&#xff0c;其它的都相同&#xff0c;这里我们可…

【C++进阶之路】第一篇:C++中的继承

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;继承的基础概念&#xff0c;定义方法&#xff0c;基类和派生类的转换&#xff0c;继承中类的作用域&#xf…

VSCode配置React Native调试环境

首先&#xff0c;用VSCode打开新建的react native工程&#xff0c;此时只能运行&#xff0c;是无法调试的。如果想单步调试代码&#xff0c;需要配置。 点击VSCode左边三角形菜单&#xff1a; 点击“创建launch.json文件”&#xff0c; 选择“React Native”调试器&#xff0c;…

肖 sir_就业课__011性能测试讲解

性能测试讲解 一、你做过性能测试吗&#xff1f; 方法1&#xff1a;做过 方法2&#xff1a;在公司中性能测试有专门的性能小组做&#xff0c;但是我也会做性能 二、性能测试有哪些类型&#xff1f; 1&#xff09;压力测试&#xff08;破坏性测试&#xff09; 压力测试是系统在一…

WiFi协议曝安全漏洞:Linux、Android和iOS未能逃脱

来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞&#xff0c;影响到运行Linux、FreeBSD、Android和iOS的各种设备。 来自美国东北大学和鲁汶大学的学者披露了一组IEEE 802.11 Wi-Fi协议标准的一个基础设计漏洞&#xff0c;影响到运行L…

【C++核心】内存、引用、函数

一、内存四区域 C程序在执行时&#xff0c;将内存大方向划分为4个区域 程序运行前分为&#xff1a; 代码区&#xff1a;存放函数体的二进制代码exe&#xff0c;由操作系统进行管理的 exe机器指令、共享、只读 全局区&#xff1a;存放全局变量和静态变量以及常量&#xff08;字…