【固定定位和绝对定位】

简介: 【固定定位和绝对定位】

固定定位【"position:fixed"】

定义:

固定定位是元素是相对于窗口(视口)定位的,也就是说即使滚动页面他也始终位于同一个位置

通俗来讲就是固定的元素不会随着滚动条的拖动而改变位置(在视野中,固定定位的元素位置不会改变的)

应用场景:

最常见的就是吸顶盒、底部通栏

其次还有:全屏黑色半透明遮罩弹出层、弹出注册和登录框、楼梯式导航(美团)、浏览器右侧菜单、左上固定自适应后台管理系统布局

27fd58a6cc644e9389f42c4f2392855f.png

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{height: 1500px;}
        header {
            width: 100%;
            background-color: #FFC0CB;
            position: fixed;
            top: 0;
        }
    </style>
</head>
<body>
    <header>
        <h1>Tab</h1>
    </header>
    <br><br><br><br><br><br><br>
    <div>
        测试文本!测试文本!测试文本!测试文本!测试文本!测试文本!测试文本!测试文本!
    </div>
    </body>
</html>

绝对定位【position:absolute】

定义:

相对于最近的祖先元素进行定位。

如果绝对定位的元素没有祖先,他将使用文档的主体也就是body,并随着页面滚动一起滚动

注意:父级有定位则看父级,父级没有定位继续向上找父级,实在找不到的话,就浏览器对齐

无父盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
            /*消除浏览器内外边距*/
        * {
            margin: 0;
            padding: 0;
        }
        .alone {
            width: 300px;
            height: 300px;
            background-color: blueviolet;
            /* 绝对定位:距离顶部100px,距离左边100px */
            position: absolute;
            top: 100px;
            left: 100px;
        }
    </style>
</head>
<body>
    <div class="alone"></div>
</body>
</html>

有父级盒子(父级无相对)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father{
            width:500px;
            height: 500px;
            margin-top: 150px;
            margin-left: 150px;
            background-color: beige;
        }
        .alone {
            width: 300px;
            height: 300px;
            background-color: blueviolet;
            /* 绝对定位:距离顶部0px,距离右边0px */
            position: absolute;
            top: 100px;
            left: 100px;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="alone"></div>
    </div>
</body>
</html>

有父盒子(父级有相对)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father{
            position: relative;
            width:500px;
            height: 500px;
            margin-top: 150px;
            margin-left: 150px;
            background-color: beige;
        }
        .alone {
            width: 300px;
            height: 300px;
            background-color: blueviolet;
            /* 绝对定位:距离顶部0px,距离右边0px */
            position: absolute;
            top: 100px;
            left: 100px;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="alone"></div>
    </div>
</body>
</html>

注意:绝对定位式脱离文档流,直接在标准的文档流中删除,元素原来的位置会被占用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            height: 50px;
            width: 50px;
        }
        section{
            position: relative;
            background-color: aqua;
        }
        .d1 {
            background-color: red;
        }
        .d2 {
            background-color: green;
            position: absolute;
            top: 20px;
            left: 30px;
        }
        .d3 {
            background-color: blue;
        }
    </style>
</head>
<body>
    <section>
    <div class="d1">div1</div>
    <div class="d2">div2</div>
    <div class="d3">div3</div>
    </section>
</body>
</html>

总结:

- 绝对定位元素脱离正常流(文档流),所以元素原来的位置会被其他元素占用。

- 因为绝对定位元素脱离了正常流,和相对元素一样也会有覆盖其他元素的情况。

- 绝对定位元素是相对于祖先元素,和相对定位不同,相对定位是相对于元素自己原来的位置。

- 绝对定位元素的祖先元素是设置的position: static,该祖先元素并不作为参考物。

- 绝对定位元素的祖先元素有多个都设置了position: absolute或position: relative ,那么是以最     近的一个祖先元素作为参考物,即相对于最近的那一个祖先元素进行移动定位。



相关文章
|
TensorFlow 算法框架/工具
win11 + tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7
win11 + tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7
219 0
|
iOS开发 MacOS Windows
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
2214 6
|
缓存 编解码 弹性计算
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
目前阿里云活动购买云服务器时,除了轻量应用服务器之外,活动内的云服务器实例规格主要以e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae这几种为主,本文主要为大家介绍了阿里云服务器的实例规格是什么,有什么用?并汇总了阿里云轻量应用服务器和阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例规格适用场景,以供大家了解和选择适合自己的需求的实例规格。
阿里云服务器e/u1/c7/c7a/c8a/c8y/g7/g7a/g8a/g8ae实例适用场景汇总
|
存储 运维 监控
阿里云物联网平台高级功能之固件升级
OTA(Over-the-Air Technology)即空中下载技术。阿里云物联网平台支持通过OTA方式进行设备固件升级。本文以MQTT协议下的固件升级为例,介绍OTA固件升级流程、数据流转使用的Topic和数据格式。本文使用MQTT.fx客户端模拟设备,进行固件升级流程的操作演示。
3277 0
阿里云物联网平台高级功能之固件升级
|
5月前
|
人工智能 自然语言处理 API
AutoAgent:无需编程!接入DeepSeek用自然语言创建和部署AI智能体!港大开源框架让AI智能体开发变成填空题
香港大学推出的AutoAgent框架通过自然语言交互实现零代码创建AI智能体,支持多模型接入与自动化工作流编排,在GAIA基准测试中表现优异。
718 16
AutoAgent:无需编程!接入DeepSeek用自然语言创建和部署AI智能体!港大开源框架让AI智能体开发变成填空题
|
12月前
|
数据库
SVN ERROR(E120106、E155009、E000122)|4-11
SVN ERROR(E120106、E155009、E000122)|4-11
|
11月前
|
Android开发 开发者 容器
flutter:&UI布局 (六)
本文档介绍了Flutter中的UI布局方式,包括线性布局(如Column和Row)、非线性布局(如Stack、Flex、Positioned)以及Wrap布局等。通过具体示例代码展示了如何使用这些布局组件来构建灵活多变的用户界面,例如使用Column垂直排列文本、使用Stack叠加组件、以及利用Wrap实现自动换行的按钮布局等。
214 1
|
存储 机器人 区块链
量化交易策略机器人系统开发|成熟案例|详情方案
量化交易策略模型是指用数学模型和计算机程序对市场行情进行分析和预测
|
并行计算 PyTorch 算法框架/工具
LLM推理引擎怎么选?TensorRT vs vLLM vs LMDeploy vs MLC-LLM
有很多个框架和包可以优化LLM推理和服务,所以在本文中我将整理一些常用的推理引擎并进行比较。
1721 2
|
存储 NoSQL 分布式数据库
数据库的演进之路:从传统到现代,技术的飞跃与应用
一、引言 数据库作为数据存储和管理的核心工具,随着信息技术的快速发展,经历了从简单到复杂、从单机到分布式的演进过程