CSS中 absolute 与 fixed 的异同(示例代码)

本文介绍了计算机专业专家兰特在航空航海领域的工作背景,以及他在GIS技术开发中的专业知识,重点讲解了absolute与fixed两种CSS定位方法的异同,包括定位原理、层叠顺序和滚动行为,并通过代码示例进行说明。

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

No.大剑师精品GIS教程推荐
0地图渲染基础- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】
1Openlayers 【入门教程】 - 【源代码+示例 300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3MapboxGL【入门教程】 - 【源代码+图文示例150+】
4Cesium 【入门教程】 - 【源代码+综合教程 200+】
5threejs【中文API】 - 【源代码+图文示例200+】
6Shader 编程 【图文示例 100+】
7Geoserver 【配置教程 100+】
8卫星应用开发教程 【配置+应用教程 100+】
9GIS数字孪生与大模型 【应用实战 100+】
10报表与数字大屏 【Echarts 实战示例】 - 【D3 综合教程】 - 【其他大屏】

absolute与fixed共同点:

  1. 定位脱离文档流position: absoluteposition: fixed 都会使元素脱离正常的文档流,这意味着它们不再占用正常布局的空间,其他元素会无视它们的存在进行布局。

  2. 可精确定位:两者都可以通过 top, right, bottom, left 属性进行精确的定位,即相对于某个参照物指定元素的位置。

  3. 覆盖与层叠顺序:它们都可能覆盖非定位元素或其他定位元素,层叠顺序由 z-index 属性控制。

absolute与fixed不同点:

  1. 参照物不同

    • position: absolute 的元素会相对于最近的已定位(非 static 定位)祖先元素进行定位。如果这样的祖先元素不存在,则相对于初始包含块(通常是 <html> 元素)定位。
    • position: fixed 的元素则是相对于浏览器视口(viewport)进行定位,无论页面怎么滚动,它的位置始终不变。
  2. 滚动行为

    • 当页面有滚动条时,fixed 定位的元素会始终保持在视口的某个位置,不会随着页面的滚动而滚动。
    • absolute 定位的元素虽然也脱离文档流,但如果其父元素发生滚动,它会跟随这个滚动的父元素一起移动。

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <style>
        .parent {
            position: relative; /* 用于作为 absolute 定位的参考 */
            height: 200vh; /* 增加高度以便滚动演示 */
            background-color: lightblue;
        }
        .abs {
            position: absolute;
            top: 50px;
            left: 50px;
            background-color: red;
            width: 100px;
            height: 100px;
        }
        .fix {
            position: fixed;
            top: 50px;
            right: 50px;
            background-color: green;
            width: 100px;
            height: 100px;
        }
    </style>
</head>
<body>
    <div class="parent">
        <div class="abs">Absolute Positioned Element</div>
    </div>
    <div class="fix">Fixed Positioned Element</div>
</body>
</html>

在这个示例中:

  • .abs 类的元素使用了 position: absolute,它会相对于设置了 position: relative.parent 父元素定位,在页面滚动时,若父元素超出视口范围,此元素也会随之滚动。
  • .fix 类的元素使用了 position: fixed,它会始终保持在浏览器视口右上角50像素的位置,不论页面如何滚动,它都不会移动。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是大剑师兰特

打赏一杯可口可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值