CSS之元素定位

元素定位

一、什么是元素定位

  • 元素定位(CSS Positioning) 是指通过CSS的 position 属性控制HTML元素在页面中的布局方式。它决定了元素如何相对于其父元素、视口或其他元素进行位置调整。

  • CSS的 position 属性用于控制元素在页面上的定位方式,主要有5种:

    • static(默认)
    • relative
    • absolute
    • fixed
    • sticky

定位相关属性

  • top / right / bottom / left(偏移量)
  • z-index(层级控制)

二、元素定位详解

1.静态定位(Static)

  • 默认定位方式,元素按照正常文档流排列。
  • top / right / bottom / left 无效

2.相对定位(Relative)

  • 相对于自身原本位置进行偏移。
  • 不脱离文档流,原位置仍保留。

代码示例

.box {position: relative;top: 20px;  /* 向下偏移20px */left: 30px; /* 向右偏移30px */background: lightblue;
}

效果

  • 元素从原位置移动,但原空间仍占位。

3.绝对定位(Absolute)

  • 相对于最近的非 static 父元素定位。
  • 脱离文档流,原位置不保留。

html代码

<div class="parent"><div class="box absolute-box">Absolute Box</div>
</div>

css代码

.parent {position: relative; /* 父元素设为 relative */height: 200px;border: 2px dashed #666;
}.absolute-box {position: absolute;bottom: 10px;  /* 距离父元素底部10px */right: 10px;   /* 距离父元素右侧10px */background: coral;
}

关键点

  • 父元素需设置 position: relative(否则相对于 <body> 定位)

4.固定定位(Fixed)

  • **相对于浏览器视口(viewport)**定位。
  • 脱离文档流,滚动页面时位置不变。

html代码

<div class="box fixed-box">Fixed Box</div>

css代码

.fixed-box {position: fixed;top: 20px;right: 20px;background: gold;
}

典型应用

  • 固定导航栏、返回顶部按钮、悬浮广告

5.粘性定位(Sticky)

  • 混合 relativefixed,滚动到阈值时固定。
  • 需指定 top / bottom / left / right

html代码

<div class="sticky-box">Sticky Box</div>
<div style="height: 1000px;">滚动区域</div>

css代码

.sticky-box {position: sticky;top: 0;       /* 距离视口顶部0px时固定 */background: limegreen;
}

适用场景

  • 表格标题固定、吸顶导航栏。

6.z-index层级控制

  • 控制定位元素的堆叠顺序(数值越大越靠前)。
  • 仅对 positionstatic 的元素生效

html代码

<div class="box box1">Box 1 (z-index: 2)</div>
<div class="box box2">Box 2 (z-index: 1)</div>

css代码

.box1 {position: relative;z-index: 2;background: rgba(255, 0, 0, 0.7);
}
.box2 {position: relative;top: -20px;left: 20px;z-index: 1;background: rgba(0, 0, 255, 0.7);
}

效果

  • box1 覆盖 box2(因 z-index 更大)。

三、总结

  1. 是否需要脱离文档流?
    • 是 → 选 absolutefixed
    • 否 → 选 relativesticky
  2. 是否需要滚动时固定?
    • 是 → 选 stickyfixed
  3. 是否需要相对于父元素定位?
    • 是 → 父元素设 relative,子元素用 absolute

案例:

需求:固定顶部导航栏

html代码

<div class="navbar">导航栏</div>

css代码

<style>.navbar {position: fixed;top: 0;left: 0;width: 100%;background: #333;color: white;padding: 10px;}
</style>

效果

css代码*

<style>.navbar {position: fixed;top: 0;left: 0;width: 100%;background: #333;color: white;padding: 10px;}
</style>

效果

在这里插入图片描述

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

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

相关文章

测试工程师如何通俗理解和入门RAG:从“查资料”到“写答案”的智能升级

1. 为什么要学习RAG?——从“查资料”到“写答案”的飞跃 背景:你已经掌握了Embedding技术,能将文档、代码、测试用例等离散信息转化为向量,用于相似度匹配。 痛点:但仅靠向量匹配找到相关文档后,如何快速生成答案?如何避免“找到文档却不会总结”的尴尬? RAG的价值:…

数量优势:使用Bagging和Boosting的集成模型

文章目录 装袋法&#xff08;Bagging&#xff09;和提升法&#xff08;Boosting&#xff09;利用集成学习创建强大的模型装袋法&#xff08;Bagging&#xff09;&#xff1a;为机器学习模型增加稳定性装袋法示例 提升法&#xff08;Boosting&#xff09;&#xff1a;减少弱学习…

5G基站选择±10ppm晶振及低相噪技术解析

在5G通信技术飞速发展的时代&#xff0c;5G基站作为核心基础设施&#xff0c;其性能的优劣直接影响着整个通信网络的质量。晶振作为5G基站中的关键器件&#xff0c;对基站的频率稳定性、信号传输质量等起着至关重要的作用。 5G基站对晶振的要求 &#xff08;一&#xff09;高…

嵌入式<style>设计模式

每天分享一个web前端开发技巧。 今天分享的主题是&#xff0c;如何提升前端代码的内聚性。我们在写<style></style>的时候&#xff0c;往往把大量无关联的样式写在同一个<style>下&#xff0c;而且离相关的html元素很远&#xff0c;这样导致每次想修改某个元…

简单数学板子和例题

线性丢番图方程 axbyc dgcd(a,b)&#xff0c;若c|d&#xff0c;有无穷整数解 x x 0 b d n , y y 0 − a d n xx_0{b\over d}n,yy_0-{a\over d}n xx0​db​n,yy0​−da​n POJ 1265 poj真难用&#xff0c;abs一直报错&#xff0c;万能头也不能用&#xff0c;给我调红温了 …

深度解析视频剪辑SDK开发:从AI字幕提取到多端原生插件集成-优雅草卓伊凡

深度解析视频剪辑SDK开发&#xff1a;从AI字幕提取到多端原生插件集成-优雅草卓伊凡 引言&#xff1a;视频剪辑技术的演进与市场需求 近年来&#xff0c;短视频和社交媒体的爆发式增长推动了视频剪辑技术的快速发展。优雅草卓伊凡及其团队近期接到一个客户需求&#xff1a;开…

对WireShark 中的EtherCAT抓包数据进行解析

对WireShark 中的EtherCAT抓包数据进行解析 EtherCAT数据包结构 EtherCAT数据帧结构如下&#xff1a; 采用 Python 实现对 EtherCAT 数据包进行解析 import numpy as np import matplotlib.pyplot as plt from IPython import embed from collections import Counter import …

基于SpringBoot的校园电竞赛事系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

数据湖和数据仓库的区别

在当今数据驱动的时代&#xff0c;企业需要处理和存储海量数据。数据湖与数据仓库作为两种主要的数据存储解决方案&#xff0c;各自有其独特的优势与适用场景。本文将客观详细地介绍数据湖与数据仓库的基本概念、核心区别、应用场景以及未来发展趋势&#xff0c;帮助读者更好地…

Mysql 刷题Day09

LC 585 2016年的投资 思路&#xff1a; 本题思路好想 &#xff0c; 就是把2015年投资相同的找出来 &#xff0c;再找出这其中经纬度不同的id对应的2016年的保险。 实际操作中&#xff0c; 发现用group by很麻烦&#xff0c; 那么想到窗口函数也能 分组进行统计 利用 count(…

Lambda表达式的方法引用详解

Lambda表达式的方法引用详解 1. 方法引用的概念与作用 定义:方法引用(Method Reference)是Lambda表达式的一种简化写法,允许直接通过方法名引用已有的方法。核心目的:减少冗余代码,提升可读性,尤其在Lambda仅调用一个现有方法时。语法符号:双冒号 ::。2. 方法引用的四种…

记录python在excel中添加一列新的列

思路是&#xff0c;先将需要添加为新的列存储到一个暂时的列表中&#xff0c;然后用到以下函数来存储 data_.loc[:, "新列的名字"] save_list_ 上面的save_list_就是暂时存储了信息的列表了。 以下是我的代码&#xff0c;供以后快速回忆。 schools_data {"98…

关于flutter中Scaffold.of(context).openEndDrawer();不生效问题

原因&#xff1a; 在 Flutter 中&#xff0c;Scaffold.of(context) 会沿着当前的 context 向上查找最近的 Scaffold。如果当前的 widget 树层级中没有合适的 Scaffold&#xff08;比如按钮所在的 context 是在某个子 widget 中&#xff09;&#xff0c;就找不到它。 解决办法…

财管-1-财务分析、评价和预测

1.因素分析法&#xff1a; 报告期&#xff08;实际&#xff09;指标M1A1 * B1 * C1 基 期&#xff08;计划&#xff09;指标M0A0 * B0 * C0……&#xff08;1&#xff09; 第一次替代 A1 * B0 * C0……&#xff08;2&#xff09; 第二次替代 A1 * B1 * C0……&#xff08;3…

golang逃逸分析

1.1 逃逸分析是什么 逃逸分析是指编译器在执行静态代码分析后&#xff0c;对内存管理进行的优化和简化。 在编译原理中&#xff0c;分析指针动态范围的方法被称为逃逸分析。通俗来讲&#xff0c;当一个对象的指针被多个方法或线程引用时&#xff0c;则称这个指针发生了逃逸。…

Meetily:AI会议记录,开源、免费、好用(本地AI实时转录、隐私保护一步到位!)

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、初识Meetily:什么是真正的智能会议助手?1. 核心优势一览2. 技术架构揭秘二、实战体验:从安装到使用的完整流程1. 系统要求2. 快速安装指南Wi…

.NET ORM开发手册:基于SqlSugar的高效数据访问全攻略

SqlSuger是一个国产&#xff0c;开源ORM框架&#xff0c;具有高性能&#xff0c;使用方便&#xff0c;功能全面的特点&#xff0c;支持.NET Framework和.NET Core&#xff0c;支持各种关系型数据库&#xff0c;分布式数据库&#xff0c;时序数据库。 官网地址&#xff1a;SqlS…

【论文阅读】KIMI-VL TECHNICAL REPORT

KIMI-VL TECHNICAL REPORT 原文摘要 核心模型&#xff1a;Kimi-VL 模型架构&#xff1a;基于 MoE 设计&#xff0c;仅激活语言解码器的 2.8B 参数&#xff08;Kimi-VL-A3B&#xff09;&#xff0c;在保持高效计算的同时实现高性能。 MoE&#xff08;Mixture of Experts&#xf…

项目管理学习-CSPM4(2)

1 前言 最近在学习CSPM的课程&#xff0c;部分内容让我受益匪浅。建议需要提升项目管理能力的同学可以通过以考促学的方式进行学习。下面整理了一部分内容和大家分享。CSPM全称China Standards Project Management&#xff0c;中文名为项目管理专业人员能力评价等级证书&#…

【Web前端】ECMAScript 6基础学习

ECMAScript 6 简介 ECMAScript 和 JavaScript 的关系:前者是后者的规格&#xff0c;后者是前者的一种实现&#xff0c;常场合&#xff0c;这两个词是可以互换的。 ECMAScript 6&#xff08;以下简称 ES6&#xff09;是 JavaScript 语言的标准&#xff0c;在 2015 年 6 月发布…