CSS学习(3)-浮动和定位

一、浮动

1. 元素浮动后的特点

  1. 脱离文档流。
  2. 不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开(尽可能小),而且可以设置宽
    高。
  3. 不会独占一行,可以与其他元素共用一行。
  4. 不会 margin 合并,也不会 margin 塌陷,能够完美的设置四个方向的 margin 和 padding 。
  5. 不会像行内块一样被当做文本处理(没有行内块的空白问题)。

2. 浮动案例

盒子1右浮动,效果如下
在这里插入图片描述
盒子1左浮动,效果如下
在这里插入图片描述
所有盒子都浮动,效果如下
在这里插入图片描述

所有盒子浮动后,盒子3落下来,效果如下
在这里插入图片描述

3. 解决浮动产生的影响

3.1 元素浮动后会有哪些影响

对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟无影响。
对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;但父元素的宽度依然束缚浮动的元素。

3.2 解决浮动产生的影响(清除浮动)

解决方案:

  1. 方案一: 给父元素指定高度。
  2. 方案二: 给父元素也设置浮动,带来其他影响。
  3. 方案三: 给父元素设置 overflow:hidden 。
  4. 方案四: 在所有浮动元素的最后面,添加一个块级元素,并给该块级元素设置 clear:both 。
  5. 方案五: 给浮动元素的父元素,设置伪元素,通过伪元素清除浮动,原理与方案四相同。===> 推荐使用。
.parent::after {content: "";display: block;clear:both;
}

布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。

3.3 浮动相关属性

在这里插入图片描述

二、定位

1. 相对定位

如何设置相对定位?

  • 给元素设置 position:relative 即可实现相对定位。
  • 可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

相对定位的参考点在哪里?

  • 相对自己原来的位置。

相对定位的特点:

  1. 不会脱离文档流,元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。
  2. 定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
    默认规则是:
    • 定位的元素会盖在普通元素之上。
    • 都发生定位的两个元素,后写的元素会盖在先写的元素之上。
  3. left 不能和 right 一起设置, top 和 bottom 不能一起设置。
  4. 相对定位的元素,也能继续浮动,但不推荐这样做。
  5. 相对行为的元素,也能通过 margin 调整位置,但不推荐这样做。

注意:绝大多数情况下,相对定位,会与绝对定位配合使用。

2. 绝对定位

2.1 如何设置绝对定位?

给元素设置 position: absolute 即可实现绝对定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

2.2 绝对定位的参考点在哪里?

参考它的包含块。

什么是包含块?

  1. 对于没有脱离文档流的元素:包含块就是父元素;
  2. 对于脱离文档流的元素:包含块是第一个拥有定位属性的祖先元素(如果所有祖先都 没定位,那包含块就是整个页面)。
2.3 绝对定位元素的特点
  1. 脱离文档流,会对后面的兄弟元素、父元素有影响。
  2. left 不能和 right 一起设置, top 和 bottom 不能一起设置。
  3. 绝对定位、浮动不能同时设置,如果同时设置,浮动失效,以定位为主。
  4. 绝对定位的元素,也能通过 margin 调整位置,但不推荐这样做。
  5. 无论是什么元素(行内、行内块、块级)设置为绝对定位之后,都变成了定位元素。

何为定位元素? —— 默认宽、高都被内容所撑开,且能自由设置宽高。

3. 固定定位

3.1 如何设置为固定定位?

给元素设置 position: fixed 即可实现固定定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

3.2 固定定位的参考点在哪里?

参考它的视口

什么是视口?—— 对于 PC 浏览器来说,视口就是我们看网页的那扇“窗户”。

3.3 固定定位元素的特点
  1. 脱离文档流,会对后面的兄弟元素、父元素有影响。
  2. left 不能和 right 一起设置, top 和 bottom 不能一起设置。
  3. 固定定位和浮动不能同时设置,如果同时设置,浮动失效,以固定定位为主。
  4. 固定定位的元素,也能通过 margin 调整位置,但不推荐这样做。
  5. 无论是什么元素(行内、行内块、块级)设置为固定定位之后,都变成了定位元素。

4. 粘性定位

4.1 如何设置为粘性定位?

给元素设置 position:sticky 即可实现粘性定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置,不过最常用的是 top 值。

4.2 粘性定位的参考点在哪里?

离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先。

4.3 粘性定位元素的特点
  1. 不会脱离文档流,它是一种专门用于窗口滚动时的新的定位方式。
  2. 最常用的值是 top 值。
  3. 粘性定位和浮动可以同时设置,但不推荐这样做。
  4. 粘性定位的元素,也能通过 margin 调整位置,但不推荐这样做。

粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。

5. 定位层级

  1. 定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
  2. 如果位置发生重叠,默认情况是:后面的元素,会显示在前面元素之上。
  3. 可以通过 css 属性 z-index 调整元素的显示层级。
  4. z-index 的属性值是数字,没有单位,值越大显示层级越高。
  5. 只有定位的元素设置 z-index 才有效。
  6. 如果 z-index 值大的元素,依然没有覆盖掉 z-index 值小的元素,那么请检查其包含块的层级。

6. 定位的特殊应用

注意:

  1. 发生固定定位、绝对定位后,元素都变成了定位元素,默认宽高被内容撑开,且依然可以设
    置宽高。
  2. 发生相对定位后,元素依然是之前的显示模式。
  3. 以下所说的特殊应用,只针对 绝对定位 和 固定定位 的元素,不包括相对定位的元素。

让定位元素的宽充满包含块

  1. 块宽想与包含块一致,可以给定位元素同时设置 left 和 right 为 0 。
  2. 高度想与包含块一致, top 和 bottom 设置为 0 。

让定位元素在包含块中居中

方案一:

left:0;
right:0;
top:0;
bottom:0;
margin:auto;

方案二:

left: 50%;
top: 50%;
margin-left: 负的宽度一半;
margin-top: 负的高度一半;

注意:该定位的元素必须设置宽高!!!

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

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

相关文章

护眼大路灯好不好用?中国路灯排行榜

护眼大路灯好不好用?关于这个问题一直有争议,一部分人觉得大路灯不好用,而且会增加支出,绝大多数人则认为大路灯特别好用,之所以会有不同的看法,小编觉得,还是大家使用的大路灯不同,…

[C语言]——函数递归

目录 一.什么是递归 1.递归的思想: 二.递归的限制条件 三.递归举例 1.举例1:求n的阶乘 1.1分析和代码实现 1.2画图推演 2.举例2:顺序打印⼀个整数的每⼀位 2.1分析和代码实现 2.2画图推演 四.递归与迭代 1.举例3:求第…

分页多线程处理大批量数据

1.业务场景 因为需要从一个返利明细表中获取大量的数据,生成返利报告,耗时相对较久,作为后台任务执行。但是后台任务如果不用多线程处理,也会要很长时间才能处理完。 另外考虑到数据量大,不能一次查询所有数据在内存…

ROS建模:从零手写机械臂的URDF模型

上一篇博客为【ROS建模:一起从零手写URDF模型】: https://blog.csdn.net/qq_54900679/article/details/135726348?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135726348%22%2C%22source%22%3A%22qq_5…

EMCC 13.5 完整安装详细版

参考文档: Cloud Control Basic Installation Guide 13.5Overview of the Enterprise Manager Proactive Patch Program (Doc ID 822485.1)Enterprise Manager Cloud Control Management Agent 13.5 Release Update (RU) 19 Bug List (Doc ID 2996590.1)13.5: How …

记录对NSIS的一些微调 实现Electron安装包美化

利洽科技-nsNiuniuSkinUI - NSIS 实现了electron 的安装包美化,免费,便捷。 下面我整理了一些关于它的微调,使其安装卸载更加简单快捷。 1. 默认展示安装路径部分 (1)将moreconfiginfo标签visible 设置为 true&#…

GEE遥感云大数据林业应用典型案例及GPT模型应用

近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

MySQL的日志:undo log、redo log、binlog有什么作用

目录 从一个update语句说起 undo log 为什么需要undo log undo log 版本链 undo log 是如何持久化到磁盘? redo log 为什么需要redo log redo的组成 redo Log的刷盘策略 redo Log循环写 crash-safe能力 binlog 为什么需要 binlog ? binlog与redo lo…

视频可回溯系统技术方案vue3+ts+tegg+mysql+redis+oss

highlight: a11y-dark theme: yu 一、 项目背景 保险、基金、银行等众多行业在做技术平台时都会需要一种能够准确了解用户操作行为的方式方法。诸如通过埋点、平台监控、视频可回溯等,通过技术手段,保存用户操作轨迹,以此规范安全销售、平台健康检查、出现纠纷时可追溯、问…

java算法第23天 | ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 思路: 这道题和删除节点异曲同工。不过要注意避坑:当遍历到不在范围内的节点时,不要直接返回null或直接返回其左或右孩子,而是继续对其左或右孩子做递归。 /*** Definition for a binary tree node.* public…

搭建EMQX MQTT服务器(超详细)

MQTT(Message Queuing Telemetry Transport)服务器是一种实现 MQTT 协议的服务器软件。MQTT 是一种轻量级的、发布/订阅模式的消息传输协议,通常用于物联网(IoT)应用中的设备通信。MQTT 服务器负责接收来自客户端的消息…

【SpringCloud】使用Seata实现分布式事务

目录 一、Seata 框架的需求背景二、Seata 事务模式与架构2.1 Seata 组成2.2 Seata 事务模式 三、Seata 实战演示3.1 部署 Seata Server3.1.1 下载 Seata Server3.1.2 更改 Seata Server 配置3.1.3 创建 Seata Server 所需的数据库、数据库表3.1.4 启动 Seata Server 3.2 Seata …

Fabric.js在vue2中使用

Fabric.js安装 这里我是基于vue来使用的,先安装上Fabric.js npm install fabric 在main.js中 import fabric from fabric Vue.use(fabric);Fabric 提供了 7 种基础形状: fabric.Circle (圆)fabric.Ellipse (椭圆)fabric.Line (线)fabric.Polyline (多条…

伊理威科技:抖音店铺运营好做吗

在数字营销的浪潮中,抖音以其强大的用户基础和独特的算法推荐机制成为了众多商家眼中的“香饽饽”。然而,对于许多初涉此领域的商家来说,心中不免有这样的疑问:“抖音店铺运营好做吗?” 运营一个抖音店铺并非易事。它既需要创意的…

【C语言】守护进程(daemon)的输出到一个文本文件

一、常用的守护进程函数 void daemonize () {//deamonizepid_t pid fork();if( pid > 0 ){ //parent exitexit(0);}//child continuesetsid();chdir("/");close(0);open("/dev/null", O_RDWR);//no env debugif(!getenv("debug")){cl…

AI预测福彩3D第13弹【2024年3月20日预测--第3套算法重新开始计算第3次测试】

今天咱们继续对第3套算法进行第3次测试,第3套算法加入了012路的权重。废话不多说了,直接上结果吧~ 最终,经过研判分析,2024年3月20日福彩3D的七码预测结果如下: 百位:7 4 8 3 6 9 0(5换0&#x…

锂电池寿命预测 | Matlab基于ALO-SVR蚁狮优化支持向量回归的锂离子电池剩余寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于ALO-SVR蚁狮优化支持向量回归的锂离子电池剩余寿命预测 基于蚁狮优化和支持向量回归的锂离子电池剩余寿命预测: 1、提取NASA数据集的电池容量,以历史容量作为输入,…

Java项目:66 ssm实验室耗材管理系统设计与实现+jsp

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员管理实验材料,审核教师与学生对实验材料的申请信息,统计每学年实验材料的使用总数信息。 教师申请使用实验材料…

【探索Linux】—— 强大的命令行工具 P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)

阅读导航 引言一、UDP协议二、UDP网络程序模拟实现1. 预备代码⭕makefile文件⭕打印日志文件⭕打开指定的终端设备文件,并将其作为标准错误输出的目标文件描述符 2. UDP 服务器端实现(UdpServer.hpp)3. UDP 客户端实现(main函数&a…

day04vue学习

day04 一、学习目标 1.组件的三大组成部分(结构/样式/逻辑) ​ scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法父传子子传父非父子通信(扩展) 3.综合案例:小黑记事本(组件版&#xff09…