Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平/垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★

【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平/垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★

作者头像
韩曙亮
发布于 2024-08-09 01:35:18
发布于 2024-08-09 01:35:18
66800
代码可运行
举报
运行总次数:0
代码可运行
一、CSS 定位

CSS 定位 相关博客 :

1、盒子模型位置摆放三大机制 - 普通流 / 浮动 / 定位

CSS 三大盒子布局方式 :

  • 普通流 : 又称为 标准流 , 盒子按照从上到下的顺序进行排列 ;
  • 浮动 : 另多个盒子水平排成一列 ;
  • 定位 : 将盒子定位在某个位置 ; 盒子自由漂浮在其它盒子之上 , 可以任意指定水平和垂直方向上的位置 ;

从层级上来说 , 普通流盒子 在最底层 , 浮动盒子 在中间层 , 定位盒子 在最上层 ;

2、CSS 定位简介

定位是将 盒子模型 定位到某个位置 , 并且自由地漂浮在其它盒子上方 ;

定位由 定位模式 + 边偏移 构成 ;

3、边偏移

边偏移 :

  • 顶部偏移量 : 盒子模型 距离 父容器 上边线 的长度 , 如 : top: 10px ;
  • 底部偏移量 : 盒子模型 距离 父容器 下边线 的长度 , 如 : bottom: 10px ;
  • 左侧偏移量 : 盒子模型 距离 父容器 左边线 的长度 , 如 : left: 10px ;
  • 右侧偏移量 : 盒子模型 距离 父容器 右边线 的长度 , 如 : right: 10px ;

4、定位模式

定位模式 : CSS 中通过 position 属性设置定位模式 , 语法如下 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
选择器 {position: 定位模式属性值;}

定位模式有如下几个设置选项 :

  • 静态定位 : static
  • 相对定位 : relative
  • 绝对定位 : absolute
  • 固定定位 : fixed

5、静态定位

CSS 中的 静态定位 是 默认的定位方式 , 就是无定位 , 设置该定位方式 , 定位盒子不生效 ;

为盒子模型 设置 静态定位 模式 , 该 盒子模型 就会按照标准流的方式 摆放布局 , 没有任何 边偏移 的效果 ;

在 使用 定位 时 , 几乎不适用 静态定位 ;

6、相对定位

相对定位 是 盒子模型 相对于 其在 标准流中的位置 设置的 ;

如 : 盒子模型 在标准流 中 , 原来的位置是 (0 , 0) , 设置了相对定位 , 就是 相对于原来的位置 (0, 0) 进行 边偏移 后的位置 ;

下面的示例中 , 盒子模型的初始位置是 在浏览器的 左上角 ( 0 , 0 ) 位置 , 此时设置相对定位 , 并设置边偏移 ,

使用 margin 也可以实现盒子放置在 ( 100, 100 ) 位置上 , 但是无法设置其浮动在其它盒子上方 ;

7、绝对定位

绝对定位 是以 父级元素 为基准 , 设置 边偏移 ;

为 子元素 添加 绝对定位 ,

  • 如果 父容器有定位 , 则相对于父容器的坐标进行定位 ;
  • 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位 ;
  • 再次引申 , 如果父容器没有定位 , 则查找父容器的父容器 是否有定位 , 如果有则相对于爷爷容器进行定位 ;

上述 父容器 的定位 不一定是 绝对定位 , 其它类型的定位也可以 , 在本博客的示例中 , 使用的就是 相对定位 ;

为父容器添加了相对定位 , 子容器也会相对于 父容器 进行定位 ;

7、绝对定位特点

绝对定位 以 带有定位的 父级元素 为基准 , 通过 边偏移 移动位置 ;

如果 绝对定位 的元素 的 父级元素 没有定位 , 那么会 一直向上查找有定位的父级元素 , 直到浏览器 ;

绝对定位 元素 不保留 原来的位置 , 是完全脱离 标准流 的 ( 脱标 ) ;

这里与相对定位进行对比 , 相对定位 是相对于 盒子在普通流模式下的位置 进行设置的 ;

相对定位 是 不脱标 ( 脱离标准流 ) 的 , 原来的位置还会进行保留 ;

8、子绝父相 - 子元素绝对定位 父元素相对定位

绝对定位 要和 带有定位 的 父容器 搭配使用 ;

子元素 使用绝对定位 , 父元素要使用 相对定位 ;

子元素使用 绝对定位 , 在布局中不会保留其位置 ,

子元素完全依赖 父容器 的位置 ,

此时就要求父容器必须稳定 , 如果父容器使用了 绝对布局 , 父容器就不会保留位置 ,

而子元素又依赖父元素 , 这时父元素建议使用相对定位 , 这样能保证页面的稳定性 ;

父级元素 需要 占位 , 必须使用 相对定位 ;

子元素 需要 任意摆放 , 必须使用绝对定位 ;

9、固定定位概念语法

固定定位 是 固定在屏幕中的某个位置 , 即使拖动滚动条 , 固定定位的元素仍然保持位置不变 ;

固定定位 完全脱离 标准流 , 不占用 布局中的位置 , 漂浮在任何元素上方 ;

固定定位 只相对于 浏览器可视窗口 进行定位 , 定位的方式是通过 " 浏览器可视窗口 + 边偏移 " 进行定位 ;

  • 固定定位 与 父元素没有任何关系 ;
  • 固定定位 与 滚动条滚动没有任何关系 ;

固定定位的元素 始终显示在浏览器可视窗口的固定位置 , 不会改变 ;

注意相对的是 浏览器可视窗口 , 不管浏览器大小如何 , 都是基于可视窗口显示 ;

固定定位 的 本质是一种 特殊的绝对定位 ;

固定定位语法 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
选择器 {
	position: fixed;
	left: 0px;
	top: 0px;
}

固定定位元素举例说明 : 在下面的网站 , 顶部的导航栏 , 与 右侧的 三个按钮 , 就是 固定定位元素 , 拖动滚动条并不会 改变 固定定位 元素的位置 ;

低版本浏览器不支持固定定位 , 如 : IE6 浏览器 ;

10、绝对定位元素设置 水平 / 垂直 居中

绝对定位 不能通过 设置 margin: auto; 样式的方式 , 设置盒子模型水平居中 ;

相对定位 的 盒子模型 , 并没有脱离标准流限制 , 仍然可以使通过设置 margin: auto; 样式的方式 令盒子水平居中 ;

举例说明 : 绝对定位 的元素 需要居中对齐的地方很多 , 如下图所示 , 右侧的 固定定位 按钮 , 需要在浏览器中居中对齐 , 轮播图中的 五个小圆点 的容器需要居中对齐 ;

1、设置固定尺寸

使 绝对定位 元素 水平 / 垂直 居中 最简单的方法就是 使用标尺测量父容器的宽高 , 通过设置四个边的边偏移量 , 设置元素 水平 / 垂直 居中 ;

2、先偏移50%再回退固定值

父容器 盒子 如果尺寸发生了改变 , 使用上述固定边偏移的方式设置的居中就会出现问题 ;

先设置 50% 的 宽度 / 高度 偏移量 , 然后再往回退 盒子一半 宽度 / 高度 的偏移量 ;

以 水平居中为例 : 200 x 200 大小的盒子 , 通过设置

  • 首先 , 设置 left 左边偏移为 50% , 让子元素的左侧 移动到 父容器水平中心位置 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	left: 50%;
  • 然后 , 设置 负数的 左外边距 , 令 子元素 向左移动 自身 宽度的一半 , 需要提前测量 子元素的宽度 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	margin-left: -100px;

11、多个盒子堆叠次序问题

在 网页布局 中 , 如果 多个盒子都设置 绝对定位 , 那么这些盒子会堆叠在一起 ;

设置了定位样式的盒子会压住标准流盒子 , 如果有多个设置定位的盒子 , 后面的盒子会压住前面的盒子 ;

下面的代码中 , 三个盒子都设置了绝对定位 , 先设置了蓝色盒子 , 然后设置了 红色盒子 , 最后设置了 紫色盒子 ;

最终展现出来的样式是 紫色盒子 压住了 红色盒子 , 红色盒子压住了 蓝色盒子 ;

代码示例 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>堆叠次序</title>
	<style>
		.one,
		.two,
		.three {
			/* 为 3 个元素 设置 绝对定位 */
			position: absolute;
			width: 200px;
			height: 200px;
			background-color: blue;
		}
		.two {
			/* 绝对定位 上边偏移 50 像素 */
			top: 50px;
			/* 绝对定位 左边偏移 50 像素 */
			left: 50px;
			background-color: red;
		}
		.three {
			/* 绝对定位 上边偏移 100 像素 */
			top: 100px;
			/* 绝对定位 左边偏移 100 像素 */
			left: 100px;
			background-color: purple;
		}
	</style>
</head>
<body>
	<div class="one"></div>
	<div class="two"></div>
	<div class="three"></div>
</body>
</html>

显示效果 :

12、z-index 属性值简介

使用 z-index 属性 , 可以设置 堆叠层级 , 数值越大 , 越靠上 ;

  • z-index 属性取值范围 : 负整数 / 正整数 / 0 ;
  • z-index 属性默认值为 0 ;
  • z-index 属性值相同 , 那么按照先后顺序 , 后来的覆盖之前的 ;
  • z-index 属性值的数字后面没有单位 ;

z-index 属性 生效的情况 :

  • 相对定位
  • 绝对定位
  • 固定定位

在其它情况 , 如 : 静态定位 , 浮动 , 标准流 下 , z-index 属性无效 ;

13、Display 显示模式转换

display 显示模式 , 可以分为

  • 行内显示模式 ;
  • 块内显示模式 ;
  • 行内块显示模式 ;

将 元素 的显示模式修改为 行内块显示模式 的方法 :

  • 使用 inline-block 可以改变显示模式 , 将 元素的显示模式 改为 行内块 显示模式 ;
  • 使用 浮动 , 也可以 将 块内元素 改为 类似于行内块的显示模式 , 浮动是脱标的 , 不占用标准流元素的位置 ;
  • 绝对定位 和 固定定位 都可以到达 将 元素转为 行内块显示模式 的效果 ;

行内盒子 , 一旦使用了 浮动 / 绝对定位 / 固定定位 就可以将该盒子看做 行内块元素 盒子 , 为该盒子设置宽高等属性 ;

浮动元素 和 绝对定位 / 固定定位 元素 , 都是脱标的 , 都不会触发 外边距塌陷 问题 , 为 盒子设置 浮动 / 定位 , 就不用考虑 外边距塌陷的问题 ;

14、使用绝对定位 / 浮动解决外边距塌陷问题

在 标准流的父盒子 中 , 添加一个 标准流子盒子 ;

如果 子盒子设置 100 像素的外边距 , 父盒子也会被带下来 , 这就是外边距塌陷 ;

下面的示例 1 中 , 父盒子 和 子盒子 没有添加任何外边距 , 没有塌陷 ;

示例 2 中 , 为子盒子设置了 上外边距 , 结果将 父盒子也带下来了 ;

使用传统方法解决外边距塌陷问题 :

  • 为 父容器 / 子元素 设置 内边距 / 边框 ;
代码语言:txt
AI代码解释
复制
- 下面是 为父容器设置 1 像素的 内边距 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		.father {
			width: 400px;
			height: 400px;
			background-color: pink;

			/* 为父容器 / 子元素设置内边距 / 边框 */
			padding: 1px;
		}
  • 为子元素设置浮动 , 可以解决 外边距 塌陷问题 ;
  • 为子元素设置绝对定位 , 可以解决 外边距 塌陷问题 ;

15、元素显示与隐藏

控制 元素的 显示 与 隐藏 的样式有如下三种 :

  • display
  • visibility
  • overflow

16、display 隐藏对象

为标签元素设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
display: none

可以 隐藏该元素 ;

如果想要 显示该对象 , 为该元素设置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
display: block

即可 ;

设置 display: block 可以显示元素 , 同时该样式还可以将元素转为块元素 ;

使用 display 隐藏元素 , 该元素就会从标准流中脱离 , 后面的元素会顶上 ;

17、visibility 隐藏对象

visibility 的属性值 默认为 inherit , 继承自父元素 , 一般默认都是可见的 ; 一般情况下父元素设置不可见 , 子元素也同时不可见 ;

visibility 设置属性值 visible , 表示该元素是可见的 ;

visibility 设置属性值 hidden , 表示该元素是隐藏的 ;

visibility 显示对象 , 为其设置 visible 属性值即可 , 一般对象默认也是显示的 ;

visibility 隐藏对象 , 但是位置仍然保留 , 后续元素无法将其原来的位置覆盖 ;

18、overflow 隐藏对象

overflow 只能对超出部分隐藏代码 ;

overflow 可设置的值 :

  • visible : 子元素超出父容器的部分仍然显示 ;
  • hidden : 子元素超出父容器的部分隐藏 ;
  • scroll : 不管子元素是否超出父容器 , 都显示滚动条 ;
  • auto : 如果子元素超出父容器显示滚动条 , 如果子元素没有超出父容器不显示滚动条 ;

效果参考 【CSS】清除浮动 ② ( 清除浮动 - 父级元素设置 overflow 样式 | overflow 属性样式效果 | 溢出隐藏效果 | 垂直进度条效果 | 水平垂直进度条效果 ) 博客 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端学习笔记—CSS
文本垂直操作:vertical-align的使用图示。middle设置居中。 vertical-align 只对行内元素、行内块元素和表格单元格(table-cell)元素生效:不能用它垂直对齐块级元素。
木溪bo
2024/02/22
1720
前端学习笔记—CSS
Css学习总结
块级元素在普通文档流中独占一行,可设置宽高宽度默认是父级100%,内外边距,可容纳其他元素。
用户4158112
2020/11/23
9730
大型编程电视剧连载 | CSS知识点硬核整理归纳(二)
网页布局中,我们是如何把里面的文字,图片,按照美工给我们的效果图排列的整齐有序呢?
上分如喝水
2021/08/16
1.9K0
大型编程电视剧连载 | CSS知识点硬核整理归纳(二)
CSS 定位
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情 >>
默默的成长
2022/11/02
7590
CSS 定位
CSS入门指南-3:定位元素
CSS 布局的核心是 position 属性,对元素盒子应用这个属性,可以相对于它在常规文档流中的位置重新定位。position 属性有4个值:static、relative、absoulte、fixed,默认值为 static。
goodspeed
2020/12/22
6850
CSS入门指南-3:定位元素
CSS3入门
https://www.runoob.com/css/css-tutorial.html
Breeze.
2022/06/27
1.7K0
CSS3入门
前端成神之路-定位
标准流在最底层 (海底) ------- 浮动 的盒子 在 中间层 (海面) ------- 定位的盒子 在 最上层 (天空)
海仔
2020/11/12
1.9K0
前端成神之路-定位
【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
绝对定位 不能通过 设置 margin: auto; 样式的方式 , 设置盒子模型水平居中 ;
韩曙亮
2023/04/16
3.5K0
【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
CSS中的定位详解
含义:采用绝对定位的元素在移动位置的时候是以父元素为参照物的,但是这个父元素必须满足一定的条件才能成为绝对定位元素眼里的父元素。
阿年、嗯啊
2021/04/27
1.5K0
CSS中的定位详解
【CSS】定位 ⑥ ( 使用绝对定位在父容器任意位置显示子容器 | 代码示例 )
要实现如下功能 , 下图 粉色 部分是 整体 父容器 , 紫色元素 是 中心的核心位置 , 蓝色是左上角的浮标 , 红色是右下角的浮标 ;
韩曙亮
2023/04/16
1.4K0
【CSS】定位 ⑥ ( 使用绝对定位在父容器任意位置显示子容器 | 代码示例 )
CSS入门?一篇就够了!
CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。
对话、
2022/02/22
5.3K0
CSS入门?一篇就够了!
【CSS】通过定位修改 display 显示模式 ( Display 显示模式转换 | inline-block 改块元素为行内块元素示例 | 为块元素设置浮动 | 为块元素设置定位 )
行内盒子 , 一旦使用了 浮动 / 绝对定位 / 固定定位 就可以将该盒子看做 行内块元素 盒子 , 为该盒子设置宽高等属性 ;
韩曙亮
2023/04/16
1.4K0
【CSS】通过定位修改 display 显示模式 ( Display 显示模式转换 | inline-block 改块元素为行内块元素示例 | 为块元素设置浮动 | 为块元素设置定位 )
【CSS】固定定位 ( 固定定位概念语法 | 固定定位 = 浏览器可视窗口 + 边偏移 | 代码示例 )
固定定位 是 固定在屏幕中的某个位置 , 即使拖动滚动条 , 固定定位的元素仍然保持位置不变 ;
韩曙亮
2023/04/16
1.9K0
【CSS】固定定位 ( 固定定位概念语法 | 固定定位 = 浏览器可视窗口 + 边偏移 | 代码示例 )
探索CSS:从入门到精通Web开发(二)
当我们谈论网页设计和开发时,CSS(层叠样式表)无疑是其中的重要一环。作为HTML的伴侣,CSS赋予网页以丰富的样式和布局,使得网站看起来更加吸引人并且具备更好的可读性。本书将通过一系列深入浅出的方式,带你从入门到精通CSS,探索Web开发的奥秘。
洁洁
2023/12/05
1880
探索CSS:从入门到精通Web开发(二)
CSS基础知识点整理笔记
在开发过程中 我们会通过通配符+box-sizing ,将元素的标准统一,解决不同浏览器的兼容问题 ,box-sizing可选属性:content-box(content)、border-box(content + border)、padding-box(content + border + padding)。
前端达人
2021/08/10
1.4K0
CSS基础知识点整理笔记
前端-CSS-更改标签样式-长宽字体-背景-边框-显示方式-定位-透明度-扩展点-02
目录 控制标签元素样式 长宽属性、字体属性、文本对齐、文本装饰、首行缩进 背景属性、边框属性、圆角 display 显示方式 盒子模型 margin、padding... float浮动 overflow 清除溢出(超出div大小的部分) position 定位 对文档流的影响 z-index 层级 opacity 标签整体透明度 去掉li 前面的标识 文本垂直居中 单行文本居中 作业案例 关于自适应(不需要了解) 控制标签元素样式 小心得: 样式有继承(遗传)效果(子元素将继承父元素的样式,如果子元素
suwanbin
2019/09/26
1.5K0
前端-CSS-更改标签样式-长宽字体-背景-边框-显示方式-定位-透明度-扩展点-02
【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )
首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ;
韩曙亮
2023/10/11
5750
【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )
Web前端温故知新-CSS基础
  定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础,提供了丰富的功能(如字体、颜色、背景的控制以及整体排版等等),还可以针对不同的浏览器设置不同的样式。
Edison Zhou
2018/08/21
3.6K0
Web前端温故知新-CSS基础
【CSS】使用 固定定位 实现顶部导航栏 ( 核心要点 | 固定定位元素居中设置 | 代码示例 )
然后 , 左侧广告栏高度为 300 像素 , 顶部在中线位置 , 向上移动 150 像素即可使真个广告栏居中设置 ;
韩曙亮
2023/04/16
3.2K0
【CSS】使用 固定定位 实现顶部导航栏 ( 核心要点 | 固定定位元素居中设置 | 代码示例 )
网页布局基础
1、CSS的三种定位机制 CSS 规定的定位机制有三种,分别是: 标准文档流(Normal flow): 特点:从上到下,从左到右,输出文档内容。由块级元素(块级元素特点:从左到右撑满页面,独占一行,触碰到页面边缘时,会自动换行)和行级元素(块级元素特点: 在同一行内显示,不会改变HTML文档结构 )组成。 浮动(Floats) 绝对定位(Absolute positioning) 言下之意就是网页布局和元素的定位都离不开这三种机制。 2、什么是W3C标准 W3C标准,是由万维网联盟制定的一系列标准,
小胖
2018/06/27
1.9K0
推荐阅读
相关推荐
前端学习笔记—CSS
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验