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

news2024/11/26 8:28:21

一、浮动

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.coloradmin.cn/o/1530999.html

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

相关文章

DETR算法简介

DETR方法是一种使用了Transformer的端到端的目标检测方法,也是经典目标检测算法之一,本文将用最少的话,介绍DETR算法的大致思想。之前的方法或多或少的都不要添加一下额外的步骤,进行人为干预,即使是号称端到端的YOLO系…

Linux卸载Zabbix6 Agent v1 v2 简易操作手册

一、Zabbix6 卸载Zabbix Agent v1 要在Linux系统上卸载Zabbix Agent v1(zabbix_agent),您可以使用包管理器执行此操作。以下是针对不同Linux发行版的卸载命令: # 对于基于Debian的系统(如Ubuntu): sudo apt-get remove zabbix-ag…

Java项目实战记录:雷达数据插值

Java项目实战记录:雷达数据插值 业务背景 之前已经实现了雷达数据的解析和雷达数据后端渲染功能,现在又有一个新的需求。之前是将雷达数据点使用GeoTools渲染成PNG的图片,但这个数据返给前端后不能无极缩放,因为它是个栅格图片&…

ArmSoM-Sige RK3588开发板使用手册

Sige7 使用手册,帮助用户了解Sige7的基本使用和需要的准备工作。 当您拿到产品的时候,您需要知道它的型号以及硬件版本,这些信息都可以在板子上的丝印找到。我们会尽可能详细地向您介绍产品的信息。 入门准备​ 在开始使用 ArmSoM-Sige7 之…

matlab空间曲线图形

说明:问题来自CSDN-问答板块,题主提问。 需求:如何用子图命令画出平面y2z,z2y与球面x^2y^2z^25相交的空间曲线图形。需要完整代码和结果的图片。 一、先看效果图 二、代码 % 创建figure figure% 创建二维网格,用于定…

数据结构的概念大合集03(栈)

概念大合集03 1、栈1.1 栈的定义和特点1.2 栈的基础操作1.3 栈的顺序存储1.3.1 顺序栈1.3.2 栈空,栈满,进栈,出栈的基本思想1.3.3 共享栈1.3.3.1 共享栈的4要素 1.4 栈的链式存储1.4.1 链栈的实现1.4.2 链栈的4个要素 1、栈 1.1 栈的定义和特…

酷开系统用电视为居家生活打开精彩窗口|酷开科技|酷开会员|

随着互联网的发展,电视也承载了更多的功能。相比于传统的电视,如今的智能电视屏幕更大、分辨率更高、色彩更加鲜艳,能够呈现出更加逼真的画面效果。当观众观看大屏电视时,仿佛置身于电影大幕的场景之中,感受到更为震撼…

边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 整体介绍(一)

专栏目录 边缘计算WEB端应用融合:AI行为识别智能监控系统搭建指南 – 整体介绍(一) 边缘计算WEB端应用融合:AI行为识别智能监控系统搭建指南 – 边缘设备图像识别及部署(二) 边缘计算WEB端应用融合&#xf…

洛谷_P2404 自然数的拆分问题_python写法

P2404 自然数的拆分问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路记录: 这道题是一道简单的DFS。 n int(input()) data [0 for _ in range(110)] def dfs(sum, p, cnt):if sum>n:returnif sum n:print(data[0],end)for i in range(1,cnt):print(f{…

centos7安装jdk详细步骤(yum安装与手动安装)

centos7安装jdk详细步骤(yum安装与手动安装) 一、使用yum安装1. 准备工作2. 检查系统是否自带jdk3. 安装jdk 二、手动安装jdk1. 下载上传jdk2. 安装jdk3. 配置环境变量 一、使用yum安装 1. 准备工作 如果你的机器可以联网可以使用此方法 ping www.baidu…

YOLOv7 | 添加GSConv,VoVGSCSP等多种卷积,有效提升目标检测效果,代码改进(超详细)

⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:http://t.csdnimg.cn/QdCj6 YOLOv7专栏: http://t.csdnimg.cn/dy…

51-31 CVPR’24 | VastGaussian,3D高斯大型场景重建

2024 年 2 月,清华大学、华为和中科院联合发布的 VastGaussian 模型,实现了基于 3D Gaussian Splatting 进行大型场景高保真重建和实时渲染。 Abstract 现有基于NeRF大型场景重建方法,往往在视觉质量和渲染速度方面存在局限性。虽然最近 3D…

Git小乌龟安装及使用教程

一、Win7安装git 软件下载地址:git for windows 安装过程直接默认下一步,直到安装结束。 安装结束后重启一下。 安装完成后,在文件夹空白处右键出现以下几个标识,说明安装成功。 二、安装tortoise git(乌龟git&…

flutter 局部view更新,dialog更新进度,dialog更新

局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…

帮助读者掌握C语言编程基础知识的书籍

帮助读者掌握C语言编程的基础知识,了解如何将人工智能技术应用于自己的编程项目。 人工智能编程(赋能C语言) 作者: 黄箐、廖云燕、曾锦山、邢振昌 ISBN号: 9787302648796 出版日期: 2023-11-01 本书以C…

【linux】环境变量(进程二)

这里写目录标题 命令行参数:环境变量: 命令行参数: 不谈命令行参数就谈环境变量就是耍流氓。 相信我们在C语言阶段都在main函数里见过参数。 例如int main(int argc, char* argv[]) 这是什么东西呢? 话不多说我们直接打印一下看…

Vue2(八):脚手架结构、render函数、ref属性、props配置项、mixin(混入)、插件、scoped样式

一、脚手架结构分析 crlc终止刚刚搭建的vue。 ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── assets: 存放静态资源 │ │ └── logo.png │ │── component: 存放组件 │ │ …

利用WebGL绘制简单几何

利用WebGL绘制最简单的几何图形 一、WebGL简介 WebGL是一种用于在网页上渲染交互式3D和2D图形的JavaScript API。它基于OpenGL ES 2.0,提供了一种在浏览器中使用硬件加速图形的方式。 二、图形系统绘图流程 图形系统的通用绘图流程会包括六个部分: …

python_django网红基地孵化园场地管理系统flask

作为一个管理孵化园的网络系统,数据流量是非常大的,所以系统的设计必须满足使用方便,操作灵活的要求。所以在设计孵化园管理系统管理系统应达到以下目标: (1)界面要美观友好,检索要快捷简易&…

python问题:vscode切换环境,pip安装库网络错误,不使用anaconda安装库

python问题:vscode切换环境,pip安装库网络错误 vscode切换环境pip安装库网络错误 不使用anaconda安装库 记录一下遇见的python问题。 vscode切换环境 在vscode上面的搜索框输入 > select interpreter然后选择需要的环境。 pip安装库网络错误 用…