【web前端开发】CSS定位

news2024/11/15 16:02:36

文章目录

  • 1.定位介绍
  • 2.定位的方式
    • 2.1 相对定位
    • 2.2 绝对定位
      • 2.2.1 子绝父相
    • 2.3 固定定位
  • 3. 元素的层级关系
  • 4. 总结

1.定位介绍

定位有两个作用:
1.可以解决盒子和盒子之间的层叠问题 (定位之后元素层级最高,可以层叠在其它盒子上面)
2.可以让盒子始终固定在屏幕中的某个位置

属性名:position

常见的属性值:

定位方式属性值
静态定位static
相对定位relative
绝对定位absolute
固定定位fixed

ps: 这四个取值中第一个就是不定位,加和不加都是一个效果.

设置position只是设置定位的方式.除了定位方式还要设置偏移值

偏移值设置分为两个方向(水平和垂直方向)

方向属性名属性值含义
水平left数字+px距离左边的距离
水平right数字+px距离右边的距离
垂直top数字+px距离上边的距离
垂直bottom数字+px距离下边的距离

ps:这里的属性值可以写成百分比的形式

2.定位的方式

前面说了定位方式有4种,静态定位,相对定位,绝对定位和固定定位
静态定位就是不定位,重点是另外三种定位方式

2.1 相对定位

相对定位就是相对自己原来的位置进行移动

position: relative;

效果演示:
这是没有设置定位前的效果:
在这里插入图片描述

设置定位后:
在这里插入图片描述
可以看到div在原有位置的基础上,向右边和下边偏移了50px. 注意偏移方向以及盒子移动的方向.

在这里插入图片描述
在这里可以看到div已经压在p标签上了,已经脱标了.但是p标签并不没有发生变化. 说明相对定位的元素依旧占有原有的位置 .与浮动不同.设置浮动的话p标签会跑到最上面到最上面.这也是使用浮动可能会让其它元素受到的影响
打开开发者工具看一下:
在这里插入图片描述
相对定位并不会改变标签原有的特点,如这里的div.块级元素独占一行.定位之后,依旧独占一行

其中这里有一些问题需要注意:

  • 设置定位方式后,不要忘记设置偏移量.不然会没有效果
  • 设置偏移量时,只需水平和垂直方向各设置一个就行.但是如果都写上.那么水平方向以left(左)为主,垂直方向以top(上)为主

2.2 绝对定位

position: absolute;

绝对定位:相对于非静态定位的父元素进行定位移动
绝对定位会先找已经定位的父元素,如果有这样的父元素,会以父元素为参考进行定位.如果有父元素,但是没有定位,会以浏览器的窗口为参考进行定位.

代码演示:
依旧是刚才的代码, 没设置绝对定位前的效果
在这里插入图片描述
设置绝对定位后的效果:
在这里插入图片描述
可以看到设置绝对定位之后,p标签跑到最上面了.此时的div已经脱标(脱离标准文档)了.
打开开发者工具:
在这里插入图片描述
我们可以看到设置绝对定位之后的div已经不是块级元素了. 而是变成行内块元素.

在没有设置偏移量前可以看到目前这个div与浏览器还有一段缝隙的
在这里插入图片描述
如果给它加一个向左偏移0之后,可以看到此时div已经和浏览器贴在一起了
在这里插入图片描述
在刚开始讲绝对定位时,就谈到过如果有父元素,但是父元素没有设置定位,就会以浏览器的窗口为参照进行定位.
上述案例中的div是body,但是body并没有设置定位,所以div就是以浏览器为参照进行定位了

2.2.1 子绝父相

刚才谈到绝对定位可以以父元素为参照进行定位,有两个条件,一是有复原色,二是父元素有定位. 父元素的定位是相对定位和绝对定位其实都可以,但是一般都会给父元素设置相对定位,子元素设置绝对定位.这个就叫做子绝父相.
在这里插入图片描述
粉色div盒子使蓝色div盒子的父元素,给粉色div设置相对定位,而蓝色div设置绝对定位.此时蓝色div就是以粉色div为参考进行定位.

注意: 绝对定位寻找父元素的方式为就近寻找.在开发过程中,一个元素可能有很多父元素,如果要给它设置绝对定位,就是以它最近的父元素逐个往外找,直到找到或者以浏览器为参照

2.3 固定定位

position: fixed;

固定定位是相对于浏览器进行定位移动. 简单来说就是元素始终位于浏览器的某个位置上,比如一些导航栏,就是使用的固定定位
代码演示:
设置固定定位前
在这里插入图片描述
加上固定定位后:
在这里插入图片描述
可以看到div已经脱标了,不在占有原有的位置.固定定位的参考位置是浏览器, 使用固定定位的标签具有行内块元素的特点.

3. 元素的层级关系

定位可以是元素脱标,而浮动也可以使元素脱标.那么它们之间的层级关系是什么样的呢?
直接给结论: 定位>浮动>标准流

定位还分相对定位,绝对定位和固定定位,如果是定位使标准流脱标,那么它们之间的层级关系则是:

  • 相对定位,绝对定位和固定定位默认的层级相同.需要书写的位置,写在下面的层级关系更高,会覆盖写在上面的元素.

4. 总结

定位分为静态定位,相对定位,绝对定位和固定定位.要清楚知道每种定位的特点,和绝对定位中的子绝父相,以及各元素之间的层级关系.

感谢你的观看!希望这篇文章能帮到你!
专栏:《web前端开发》 在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”
在这里插入图片描述

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

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

相关文章

shell呈现数据

shell脚本编程系列 理解输入和输出 目前为止了解了两种显示脚本输出的方法:在显示器屏幕上显示输出,将输出重定向到文件中,这两种方法将数据输出全部显示出来,要么什么都不显示,但有时一部分数据显示屏幕上&#xff0…

Android---启动页+闪屏页

目录 启动页 闪屏页 启动页 app 在进入首页面的过程中,都会线加载一张图片然后再进入闪屏页。这样,可以给用户很好的体验。 作用:避免加载白屏页面,进行业务的预处理(网络检测、数据预加载...) 界面组成…

基于Pyqt5快速构建应用程序详细教程

一、介绍 图形用户界面,更广为人知的名称是 GUI,是当今大多数个人计算机的一个特征。 它为不同计算技能水平的用户提供了直观的体验。 尽管 GUI 应用程序可能会使用更多资源,但由于其点击式特性,它们通常对用户友好。 PyQt 是可用…

最小生成树|二分图

最小生成树跟边的正负没有任何关系。 最小生成树 朴素Prime 该算法和Dijkstr算法很像。 先把所有距离初始化为正无穷 进行n次迭代 找到不在集合(集合指当前的生成树)当中的点,s数组表示当前已经在连通块(生成树)中的所…

vue-simple-uploader在VUE3中分片上传大文件

vue-simple-uploader是一个优秀的大文件分片上传组件,在vue2里面工作一切正常,但是在vue3里面却发现了一些问题: (1)在element-plus的el-dialog里面渲染失败; (2)上传进度条不能正…

由浅入深详解四种分布式锁

在多线程环境下,为了保证数据的线程安全,锁保证同一时刻,只有一个可以访问和更新共享数据。在单机系统我们可以使用synchronized锁或者Lock锁保证线程安全。synchronized锁是Java提供的一种内置锁,在单个JVM进程中提供线程之间的锁…

信息系统项目管理师,第四版应该如何应对

一、 改版情况。 2023年3月,新版教材起售。 2023年4月4日,官网宣布本次考试第三版第四版兼顾使用。 以历年的考试时间来看,一般这次考试是在 5月27日、28日附近。 接下来只有一个月左右的时间了。给大家聊聊面对现在这个情况如何备考。 …

考研计算机组成原理总结(7)

一.虚拟存储器 1.基本知识 主存和辅存共同构成了虚拟存储器,二者在硬件和系统软件的共同管理下工作。对于应用程序员而言,虚拟存储器是透明的。虚拟存储器具有主存的速度和辅存的容量。 2.基本概念 虚拟存储器将主存或辅存的地址空间统一编址&#x…

如何提高图片清晰度?三种方法来帮你!

如何提高图片清晰度?图片在上传到网络后会被压缩,导致图片变得模糊。今天,我将分享三种方法,帮助您提高图片的清晰度。 方法一:使用记灵在线工具 工具地址:记灵在线工具 - 更专注于发现工具的实用性 该工…

[Linux 命令] ls 显示目录内容列表

ls 显示目录内容列表 思维导图 补充说明 ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls [选项] [文件名...][-1abcdfgiklmnopqrstuxABCD…

Node.js下载安装与简单使用

一、下载Node.js 打开链接:Node.js 的官网首页(https://nodejs.org/en/) 选择左边的 LTS 版本和 Current 版本的不同 1.LTS 为长期稳定版,对于追求稳定性的企业级项目来说,推荐安装 LTS 版本的 Node.js。 2.Current …

【系统集成项目管理工程师】项目质量管理

💥十大知识领域:项目质量管理 项目质量管理包括以下 3 个过程: 规划质量管理实施质量保证质量控制 一、规划质量管理 规划质量管理是识别项目及其可交付成果的质量要求和标准,并准备对策确保符合质量要求的过程 这部分重点主要是工具与技术 1…

C语言从入门到精通第8天(分支结构if、else、switch的使用)

分支结构if、else、switch的使用 if语句if...else语句if...else嵌套if...else if...else语句switch语句 if语句 语法: if(表达式){ 语句; } 如果表达式为真,则执行{}里面的语句。如果为假,则不执行。示例代码: int m…

春秋云镜:CVE-2022-25488(SQL报错注入)

目录 一、题目 二、sqlmap梭哈查flag 一、题目 介绍: Atom CMS v2.0存在sql注入漏洞在/admin/ajax/avatar.php页面 进入题目; 发现是Not Found页面 一开始以为打开的问题: 一想 我们要访问的是/admin/ajax/avatar.php 访问后是空白页面&#xff1a…

进程树pstree介绍

进程树(pstree)是一个Linux/Unix命令,用于显示系统中所有进程的层次结构。它可以将进程展示为树形结构,其中每个进程都是一个节点,而每个节点下面的子节点是该进程的子进程。pstree可以按照进程的父子关系显示进程&…

[架构之路-172]-《软考-系统分析师》-5-数据库系统-5- 数据库设计与建模(逻辑设计-实体关系图ER图-关系图、物理设计)

目录 5 . 5 数据库设计与建模 5.5.1数据库设计阶段 1 . 规划:为什么做?能不能做? 2 . 需求分析:做成什么样子? 3 . 概念设计:怎么做 - 概念 (用户) 4 . 逻辑设计:怎…

p66 内网安全-域横向批量atschtasksimpacket

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 基本概念 DMZ区域:称为“隔离区”,也称‘’非军事化区/停火区…

C语言入门篇——数据篇

目录 1、变量与常量 1.1变量 1.2常量 1.2.1#define 定义的标识符常量 1.2.2枚举常量 2、数据类型关键字 3、整数 4、浮点数 5、基本数据类型 5.1、int型数据 5.2、char型数据 5.3、_Bool类型 5.4、float、double和long double 5.5、复数和虚数类型 6、总结 1、变…

Preempt-RT实时系统下IGH主站安装

文章目录 1. 安装环境2. 确定网卡类型3. 下载IGH安装包4. 配置安装5. 启动测试6. 扫描从站7. 设置环境变量 1. 安装环境 ubuntu18.04内核版本:4.19.72-rt25 2. 确定网卡类型 查看网卡驱动 lspci -v可以看到我的网卡驱动主要有e1000e和igb两种类型,其…

localhost与本机IP IPtables匹配顺序

localhost&host IPtables iptables链匹配顺序 ping localhost 当前实验网络为IPV4模式通过tcpdump抓包,我们可以发现ping localhost的流量最终发送到lo网卡了通过iptables pkts数据计数我们可知,ping localhost的iptables过滤流程为:应…