代码编织梦想

## CSS 定位布局

### 1、定位的作用

普通文档流中块元素垂直排列,行内元素水平排列。

浮动可以实现多个块级盒子在一行无缝排列显示。

定位能够让我们把一个元素从它原本在正常布局流中应该在的位置移动到另一个位置(自由的在某个盒子内移动位置或者固定在屏幕中的某个位置)。

### 2、定位的实现

使用定位需要指定一个元素在文档中的定位模式,配合设置【边偏移量】决定元素最终的显示及位置。

定位模式通过position属性来设置,以下为常用四种定位模式静态定位,相对对定位,绝对定位,固定定位。

边偏移定位元素的位置,使用`top`、`right`、`bottom`和`left`来描述。

通常水平位置通过left或right控制,垂直位置通过top或bottom控制。

- 位置属性

- left:设置距离包含块左侧的距离

- right:设置距离包含块右侧的距离

- top:设置距离包含块顶部的距离

- bottom:设置距离包含块底部的距离

- 取值

- 长度值:px/em等

- 百分比:相对于包含块计算

- auto 默认值

- 允许使用负值

### 3、定位模式详解

#### 3.1 相对定位

```css

postion:relative;

```

相对于元素在正常的文档流中的位置移动它,把一个正常布局流中的元素从它的默认位置按坐标进行相对移动。

它原本所占的空间不会改变。

##### 3.1.1 基础特性

- 不脱离文档流

- 提升元素层级

- 不定义偏移量时对元素基本没有影响

##### 3.1.2 应用场景

通常作为定位父级配合绝对定位使用

#### 3.2 绝对定位

```css

postion:absolute;

```

没有定位父级时相对于HTML进行定位,有定位父级时相对于最近的定位父级进行定位。

##### 3.2.1 基础特性

- 脱离文档流

- 提升元素层级

##### 3.2.2 应用场景

通常配合绝对定位使用(父相子绝)结合实际案例,如焦点图中的分页,翻页,视频网站中的 vip标签等。

#### 3.3 固定定位

```css

postion:fixed;

```

元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会移动。

##### 3.3.1 基础特性总结

- 脱离文档流

- 提升元素层级

##### 3.3.2 应用场景

相对于窗口定位的元素如弹窗、跟随滚动的导航、侧边栏。

#### 3.4 静态定位

```css

postion:static;

```

表示“将元素放在文档布局流的默认位置,HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

##### 3.4.1 基础特性总结

- 静态定位的元素不会受到 top, bottom,left,right影响

##### 3.4.2 应用场景

- 常用于重置定位属性

### 4、定位元素的层级顺序

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素。

z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面或后面)。

<img src="D:/web/2021/2021一阶段资料/day07/笔记/media/day07_01.jpg" style="zoom:50%;" />

- 取值

- auto(默认值) 堆叠顺序与父元素相等

- 数值:拥有更高堆叠顺序(数值越大)的元素总是会处于堆叠顺序较低的元素的前面

- 总结

- 普通层,浮动层,定位层覆盖关系总结

- 提示:从父原则

### 5、实现盒子居中的方法

**方法一:**

实现思路:margin负值配合百分比。

**方法二:**

实现思路:left,right,top,bottom并用,配合margin:auto。

>如果元素的四个边的位置是使用“top”、“right”、“bottom”和“left”来描述的,那么元素的“height”和“width”将隐式地由偏移量决定。

>如果包含块是块级,则相对于包含块的边界即(包括padding),如果包含块是行级,则相对于包含块的内容区域。

**注意**:ie低版本不兼容!

### 6、定位对元素的影响

- 相对定位基本不改变元素本身的特性

- 绝对、固定定位

- 脱离文档流

- 提升元素层级

- 未定宽度的块元素适应内容

- 使行内元素生成块级框

- 对浮动高度塌陷问题,margin值叠加问题的不同表现

- **注意**:定位并不是一种用来做主要页面布局的方式,主要用于管理和微调页面中的一个特殊项的位置

### 7、定位与浮动的区别对比

#### 7.1 使元素脱离文档流的属性

- float:left

- float:right

- postion:absolute

- position:fixed

#### 7.2 表现上的区别

- 浮动元素:

使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本、图片、表单标签依然会为这个元素让出位置,环绕在周围

- 定位元素:

使用position脱离文档流的元素,其他盒子完全无视它,包括元素内部的文本、图片、表单标签

- 总结:

- 不同点:浮动脱离文档流,不脱离文本流,定位元素既脱离文档流,又脱离文本流

- 相同点:宽高默认由内容撑开,生成块级框(可以设置width和height及所有盒模型属性等)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zywlg/article/details/128841039

Mysql数据库知识总结-爱代码爱编程

sql语言 1.1sql概述 简答题:sql 的概念及分类? Sql 是专门操作数据库的增删改查的一种语言。 结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。Sql 的分类: 1、数据定义语言(DDL Data De

每日FPGA学习总结-爱代码爱编程

FPGA学习基础知识每日总结 每日总结 前言一、BCD8421码是什么?二、过程1.将十进制数转换成8421码三、总结 前言 通过对每天工作的总结保证自己可以每天都有输出,既分享了知识,也加固自己的知识,最终的目的是自己可以建立一个知识体系。有个话很好,不成体系的知识是段子。 一、BCD8421码是什么? 我们日常生活中使用最多的是十进制,

Hcia知识点总结-爱代码爱编程

Hcia知识点总结 目录 1.网络定义 2.OSI七层模型/tcp ip 协议栈 3.数据封装与解封装 4.路由器,交换机 5.IP地址 6.基础网络协议 7.华为设备基础命令 1.网络定义 什么是网络? 指的是由网络连接设备通过传输介质将网络终端设备连接起来进行信息共享交互的平台。 名词解释: 网络连接设备:用于网络连接的装置

知识总结目录-爱代码爱编程

JAVASE每日复习总结 快速总结大杂烩 public、private、protected和default作用域的比较 流的分类 过滤流(包装流) 序列化和反序列化 Spring SpringBoot请求类的注解 SpringMVC的工作流程 同源策略,跨域,AOP相关,动态代理 注解快速总结 常见的运行时异常 五种常见的运行时异常

前端学习——每日总结-爱代码爱编程

2022年1月20日 1. 初学html,了解其每部分组成和组成元素的表示方法 2. 了解定义页面的各种标签及其属性表达:排版、字体、列表、图片、表格、框架、表单、多媒体标签 3. 具体标签的属性还不熟悉 4. 完成html前端开发编辑器VS code的安装 5. 明日计划:学习html5的内容,尽量多掌握属性的表达,可开始实战演练。 2022

Nginx核心知识总结-爱代码爱编程

一:什么是Nginx?         Nginx是一个高性能的Http反向代理web服务器;主要功能:反向代理;通过配置文件可以实现集群和负载均衡;静态资源虚拟化; 二:什么是反向代理?         正向代理:客户端请求目标服务器之间的一个代理服务器;请求会先经过代理服务器,然后再转发请求到目标服务器,或的内容后最后响应给客户端;    

计算机网络知识点总结_计算机网络一天一个知识点-爱代码爱编程

文章目录 0 计算机网络概述0.1 计算机网络在信息时代的作用0.2 计算机网络的重要功能0.3 因特网概述0.3.1 理论0.3.2 三个阶段 0.4 多层次的ISP结构0.5 因特网的组成0.6 三