CSS 之 position 定位属性详解

CSS系列文章目录

  1. CSS 之 display 布局属性详解
  2. CSS 之 position 定位属性详解
  3. 一文搞懂flex布局 【弹性盒布局】

在这里插入图片描述


文章目录

  • CSS系列文章目录
  • 一、前言
  • 二、静态定位:position:static;
  • 二、相对定位:position:relative
  • 三、绝对定位:position:absolute
  • 四、固定定位:position:fixed
  • 五、粘性定位:position:sticky


一、前言

position 属性规定应用于元素的定位方法的类型(static、relative、fixed、absolute 或 sticky)。

元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。

二、静态定位:position:static;

HTML 元素默认情况下的定位方式为 static(静态)定位,表示没有定位,元素会按照正常的位置显示,此时 top、bottom、left 和 right 4 个定位属性也 不会被应用

position: static; 的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位:

🌰举个栗子:

<!DOCTYPE html>
<html>
<head><style>div{height: 100px;border: 1px solid black;}div.static {width: 130px;height: 50px;background-color: #CCC;line-height: 50px;text-align: center;position: static;top: 50px;left: 20px;}</style>
</head>
<body><div><div class="static">item;</div></div>
</body>
</html>

🤖运行结果:
在这里插入图片描述

二、相对定位:position:relative

相对定位 的元素相对于其正常位置进行定位。

设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。

🌰举个栗子:

1、未使用 position:relative

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:

在这里插入图片描述
2、使用 position:relative

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;position:relative;left:20px;top:20px;}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:

在这里插入图片描述

🎯总结:relative 是相对正常文档流的位置进行偏移,原先占据的位置依然存在,也就是说它不会影响后面元素的位置。left 表示相对原先位置右边进行偏移,top 表示相对原先位置下边进行偏移。当 leftright 同时存在,仅 left 有效,当 topbottom 同时存在仅 top 有效。relative 的偏移是基于对象的 margin 左上侧的。

三、绝对定位:position:absolute

绝对定位 的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)。

然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。

🎯注意:“被定位的”元素是其位置除 static 以外的任何元素。

🌰举个栗子:

1、未使用 position:absolute

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;}#content {margin-left:100px;margin-top: 100px;}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:

在这里插入图片描述
2、使用 position:absolute

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;position: absolute;left:20px;top:20px;}#content {margin-left:100px;margin-top:100px;}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:

在这里插入图片描述

由此可见当父级元素的 position 属性值为默认值时(static), absolute 是相对于浏览器窗口进行定位的。

如果设置 contentposition 属性值为非默认值,那么 absolute 就是相对于该父级元素进行定。

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;position: absolute;left:20px;top:20px;}#content {margin-left:100px;margin-top: 100px;position: relative}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:
在这里插入图片描述
继续修改css样式:

<html><head><style type="text/css">#item1 {width:100px;height:100px;background-color:green;}#item2 {width:100px;height:100px;background-color:red;}#content {margin-left:100px;margin-top: 100px;position:absolute;padding:20px;border:10px solid black;}</style></head><body><div id="content"><div id="item1" >item1</div><div id="item2">item2</div></div></body>
</html>

🤖运行结果:

在这里插入图片描述

注意到变化了吗,当把外层 div 设置为 absolute 时,外层 div 宽度由原来的100%变为 auto

当把一个元素 position 属性设置为 absolutefixed 的时候,会发生三件事:

  1. 把该元素往 Z 轴方向移了一层,元素脱离了普通流,所以不再占据原来那层的空间,还会覆盖下层的元素。

  2. 该元素将变为块级元素,相当于给该元素设置了 display: block;(给一个内联元素,如 <span> ,设置 absolute 之后发现它可以设置宽高了)。

  3. 如果该元素是块级元素,元素的宽度由原来的 width: 100%(占据一行),变为了 auto

四、固定定位:position:fixed

固定定位 就是将元素相对于浏览器窗口进行定位,使用固定定位的元素不会因为浏览器窗口的滚动而移动,就像是固定在了页面上一样,我们经常在网页上看到的返回顶部按钮就是使用固定定位实现的。

🌰举个栗子:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style>.out{border: red 1px solid;height: 600px;width: 500px;}.in{border: blue 1px solid;height: 200px;width: 200px;}</style></head><body><div class="out" style="position: relative;" ><div class="in" style=" background-color: wheat;"></div><div class="in" style=" background-color: red; position: fixed; left: 20px; bottom: 10px;"></div><div class="in" style=" background-color: blue;"></div></div></body>
</html>

🤖运行结果:

在这里插入图片描述

五、粘性定位:position:sticky

粘性定位 与前面介绍的四种定位方式不太一下,它像是相对定位和固定定位的结合体,当滚动页面时它的效果与相对定位相同,当元素滚动到一定程度时它又会呈现出固定定位的效果。比如一些网页上的导航菜单,当页面加载完成时它在自己默认的位置,当我们向下滚动页面时它又会固定在页面的最顶端。

🌰举个栗子:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style>.out{border: red 1px solid;height: 600px;width: 500px;}.in{border: blue 1px solid;height: 200px;width: 250px;}</style></head><body><div class="out" ><div class="in" style=" background-color: wheat;"></div><div class="in" style=" background-color: red;"></div><div class="in" style=" background-color: blue;"></div></div></body>
</html>

🤖运行结果:

在这里插入图片描述


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日&#xff0c;2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者&#xff0c;共同探讨云计算产业发展方向和未来机遇&#xff0c;展示云计算标准化工作重要成果。 会上&#xff0c;云建设与应用领航计划&#xff08;2024&#xff09;建云用…

微信小程序Uniapp

使用命令行创建项目&#xff08;vuets&#xff09; npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本&#xff0c;生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开

汇编环境搭建

学习视频 将MASM所在目录 指定为C盘

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2

热备份路由HSRP及配置案例

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网路安全入门系列 目录 一&#xff0c;HSRP的相关概念二&#xff0c;…

今日头条ip属地根据什么显示?不准确怎么办

在今日头条这样的社交媒体平台上&#xff0c;用户的IP属地信息对于维护网络环境的健康与秩序至关重要。然而&#xff0c;不少用户发现自己的IP属地显示与实际位置不符&#xff0c;这引发了广泛的关注和讨论。本文将深入探讨今日头条IP属地的显示依据&#xff0c;并提供解决IP属…

倍思氮化镓充电器分享:Super GaN伸缩线快充35W

快节奏的时代,在旅游、办公等场景下,一款高效、便捷的充电器可以让我们的生活更便捷、高效。今天就给大家推荐一款倍思氮化镓充电器——Super GaN伸缩线快充35W。它具备多重亮点,可以满足我们在许多场景下的充电需求,成为我们的得力助手。 倍思氮化镓Super GaN伸缩线快充35W的亮…

云架构Web端的工业MES系统设计之区分工业过程

云架构Web端的工业MES系统设计之区分工业过程 在当今数字化浪潮席卷全球的背景下,制造业作为国家经济发展的重要支柱产业,正面临着前所未有的机遇与挑战。市场需求的快速变化、客户个性化定制要求的日益提高以及全球竞争的愈发激烈,都促使制造企业必须寻求更加高效、智能的生产…

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…

VScode SSH 错误:Got bad result from install script 解決

之前vscode好好的&#xff0c;某天突然连接报错如下 尝试1. 服务器没有断开,ssh可以正常连接 2. 用管理员权限运行vscode&#xff0c;无效 3. 删除服务器上的~/.vscode-server 文件夹&#xff0c;无效 试过很多后&#xff0c;原来很可能是前一天anaconda卸载导致注册表项 步…

GPT分区 使用parted标准分区划分,以及相邻分区扩容

parted 是一个功能强大的命令行工具&#xff0c;用于创建和管理磁盘分区表和分区。它支持多种分区表类型&#xff0c;如 MBR&#xff08;msdos&#xff09;、GPT&#xff08;GUID Partition Table&#xff09;等&#xff0c;并且可以处理大容量磁盘。parted 提供了一个交互式界…

关系分类(RC)模型和关系抽取(RE)模型的区别

目标不同 关系分类模型&#xff1a;对给定的实体对在给定句子中预测其关系类型。两阶段&#xff08;RC&#xff09; 关系抽取模型&#xff1a;从句子中识别出所有潜在实体对&#xff0c;并为其预测关系类型。一阶段&#xff08;NERRE&#xff09; 训练/预测阶段输入输出数据不…

VSCode编辑+GCC for ARM交叉编译工具链+CMake构建+OpenOCD调试(基于STM32的标准库/HAL库)

一、CMake安装 进入CMake官网的下载地址Get the Software&#xff0c;根据系统安装对应的Binary distributions。 或者在CMake——国内镜像获取二进制镜像安装包。 或者访问GitHub的xPack项目xPack CMake v3.28.6-1&#xff0c;下载即可。 记得添加用户/系统的环境变量&#…

【数据结构】链表(2):双向链表和双向循环链表

双向链表&#xff08;Doubly Linked List&#xff09; 定义&#xff1a; 每个节点包含三个部分&#xff1a; 数据域。前驱指针域&#xff08;指向前一个节点&#xff09;。后继指针域&#xff08;指向下一个节点&#xff09;。 支持从任意节点向前或向后遍历。 #define dat…

RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用

工业视觉识别系统厂家提供的功能主要包括&#xff1a; 这些厂家通过先进的视觉识别技术&#xff0c;实现图像的采集、处理与分析。系统能够自动化地完成质量检测、物料分拣、设备监控等任务&#xff0c;显著提升生产效率和产品质量。同时&#xff0c;系统具备高度的灵活性和可扩…

3 抢红包系统

我们还是按照我们分析问题的方法论开展 一 场景分析 我们分析的是集体活动的抢红包&#xff0c;比如春晚&#xff0c;大型活动红包&#xff0c;需要在网页操作的抢红包 抢红包的问题也是多个人抢资源的问题&#xff0c;可以和秒杀进行比对。但是也有很多不同的地方。 用户打…

数据库中的并发控制

并发操作带来的数据不一致性 1、并发控制:为了保证事务的隔离性和一致性&#xff0c;数据库管理系统需要对并发操作进行正确调度 并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制等 并发操作带来的数据不一致性: ① 丟失修改:两个事务 T1 和 T2 读入同一数据…

ArcGIS Server 10.2授权文件过期处理

新的一年&#xff0c;arcgis server授权过期了&#xff0c;服务发不不了。查看ecp授权文件&#xff0c;原来的授权日期就到2024.12.31日。好吧&#xff0c;这里直接给出处理方法。 ArcGIS 10.2安装时&#xff0c;有的破解文件中会有含一个这样的注册程序&#xff0c;没有的话&…

学英语学压测:02jmeter组件-测试计划和线程组ramp-up参数的作用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#xff1a;先看关键单词&#xff0c;再看英文&#xff0c;最后看中文总结&#xff0c;再回头看一遍英文原文&#xff0c;效果更佳&#xff01;&#xff01; 关键词 Functional Testing功能测试[ˈfʌŋkʃənəl ˈtɛstɪŋ]Sample样…

MCGS学习记录

软件包 用户窗口 主窗口 元件&#xff1a;工具箱->输入框上面 数据对象 在工作台的实时数据库可以新增数据对象 理解为中间变量&#xff0c;控件改变其值&#xff0c;控件监测其值做出变化 基本属性 设定变量名和初始值 指针化&#xff1f; 变化时自动保存初始值&#x…