七、定位
7.1、定位概述
定位也是用来布局的,它有两部分组成:定位 = 定位模式 + 边偏移。
7.2、边偏移
简单说, 我们定位的盒子,是通过边偏移来移动位置的。
在 CSS 中,通过 top
、bottom
、left
和 right
属性定义元素的边偏移:(方位名词)。
边偏移属性 | 示例 | 描述 |
top |
top: 80px |
顶端偏移量,定义元素相对于其父元素上边线的距离。 |
bottom |
bottom: 80px |
底部偏移量,定义元素相对于其父元素下边线的距离。 |
left |
left: 80px |
左侧偏移量,定义元素相对于其父元素左边线的距离。 |
right |
right: 80px |
右侧偏移量,定义元素相对于其父元素右边线的距离 |
定位的盒子有了边偏移才有价值。 一般情况下,凡是有定位地方必定有边偏移。
7.3、定位模式
在 CSS 中,通过 position
属性定义元素的定位模式,语法如下:
选择器 { position: 属性值; } 复制代码
定位模式是有不同分类的,在不同情况下,我们用到不同的定位模式。
值 | 语义 |
static |
静态定位 |
relative |
相对定位 |
absolute |
绝对定位 |
fixed |
固定定位 |
7.3.1、静态定位(static)
静态定位是元素的默认定位方式,无定位的意思。它相当于 border 里面的none, 不要定位的时候用。静态定位 按照标准流特性摆放位置,它没有边偏移,静态定位在布局时我们几乎不用的 。
7.3.2、相对定位(relative)
相对定位是元素相对于它原来在标准流中的位置来说的。他有两个特点:
- 相对定位是相对于自己原来在标准流中位置来移动的。
- 原来在标准流的区域继续占有,后面的盒子仍然以标准流的方式对待它。
7.3.3、绝对定位(absolute)
绝对定位是元素以带有定位的父级元素来移动位置,也就是我们常说的拼爹。他的特点:
- 完全脱标 —— 完全不占位置;
- 父元素没有定位,则以浏览器为准定位(Document 文档)。
7.3.4、固定定位(fixed)
固定定位是绝对定位的一种特殊形式: (认死理型) 如果说绝对定位是一个矩形 那么 固定定位就类似于正方形
- 完全脱标 —— 完全不占位置;
- 只认浏览器的可视窗口——
浏览器可视窗口 + 边偏移属性
来设置元素的位置;
- 跟父元素没有任何关系;单独使用的
- 不随滚动条滚动。
7.3.5、定位总结
定位模式 | 是否脱标占有位置 | 移动位置基准 | 模式转换(行内块) | 使用情况 |
静态static | 不脱标,正常模式 | 正常模式 | 不能 | 几乎不用 |
相对定位relative | 不脱标,占有位置 | 相对自身位置移动 | 不能 | 基本单独使用 |
绝对定位absolute | 完全脱标,不占有位置 | 相对于定位父级移动位置 | 能 | 要和定位父级元素搭配使用 |
固定定位fixed | 完全脱标,不占有位置 | 相对于浏览器移动位置 | 能 | 单独使用,不需要父级 |
- 边偏移需要和定位模式联合使用,单独使用无效;
top
和bottom
不要同时使用;left
和right
不要同时使用。