前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【网页前端】CSS常用布局之定位

【网页前端】CSS常用布局之定位

作者头像
陶然同学
发布于 2023-02-27 03:24:40
发布于 2023-02-27 03:24:40
1.4K0
举报
文章被收录于专栏:陶然同学博客陶然同学博客

👀专栏介绍

【前端网页】 目前主要更新HTML,一起学习一起进步。

👀本期介绍

本期主要介绍CSS常用布局之定位

文章目录

1. 引言

2. 概述及分类

3. 静态定位:(标准流)

3.1 概述

4. 相对定位

4.1 概述&入门案例

4.2 边偏移

4.3 进阶案例 1:鼠标移入反馈

4.4 注意事项&总结

5. 绝对定位

5.1 概述&入门案例

5.2 进阶案例 1:父子关系中的绝对定位

5.3 进阶案例 2:子绝父相

5.4 总结

6. 固定定位

6.1 概述&入门案例

6.2 进阶案例 1:父子关系中的固定定位

6.3 总结

7. 定位总结

8. 定位-周边知识

8.1 叠放次序:z-index

8.2 定位子元素-水平垂直居中

1. 引言

在网页布局中,经常会涉及到将一个元素固定放置在某些位置的操作:

或者把某些元素固定在页面某个位置,不会随着网页滚动而滚动。

以上效果,标准流做不到,浮动也无法轻易做到。

为了轻松实现上述效果,我们就要继续学习 CSS 常用布局的定位知识。

2. 概述及分类

定位:将元素固定在某一位置,又称为摆放元素。

作用:更加方便进行元素的位置调节

根据用法、特性的不同,定位分为多种模式

常见定位模式:

static 静态定位

relative 相对定位

absolute 绝对定位

fixed 固定定位

下面我们来逐一学习

3. 静态定位:(标准流)

3.1 概述

静态定位:属于元素 默认 定位方式,就是我们常说的标准流。

即无定位。

语法:

选择器 {

position : static ;

}

注意:除非我们需要将元素 由其他定位模式 强制改回 标准流,否则一般情况下不用。

4. 相对定位

4.1 概述&入门案例

相对定位: 元素以 自己原先位置 为参照进行定位。

语法:

选择器 {

position : relative ;

}

准备代码

代码实现:

效果分析&小结

小结:

1 、 相对定位的元素,仍然会占用原来在 标准流 中的位置

2 相对定位可以设置边偏移会在展示效果上 覆盖标准流(也会覆盖浮动)

4.2 边偏移

边偏移:通过上下左右的偏移来移动定位元素。

作用:在定位中摆放元素

准备代码:

常见偏移样式(标准流和浮动无法设置偏移)

总结:

1 、 标准流和浮动无法设置边偏移

2 、 相对定位的边偏移,是 相对于 元素原先在标准流中的位置 来定位的。

4.3 进阶案例 1:鼠标移入反馈

我们可以利用边偏移 + 伪类 制造 鼠标移入反馈。

准备代码: (要求鼠标移入 三个 div ,三个 div 不影响整体布局前提下,分别有移动反馈)

(移动反馈:元素向左上移动 5px )

实现代码:

小结:

因为相对定位能使用边偏移,用边偏移的展示效果不会影响其他元素,所以可以用来做一些效果。

4.4 注意事项&总结

1 、 标准流 (position:static;) 和 浮动 不能设置边偏移

2 、相对定位的边偏移,是 相对于 元素原先在标准流中的位置 来定位的。

3 、 相对定位的元素,仍然会占用原来在 标准流 中的位置

4、 相对定位会在展示效果上 覆盖标准流(也会覆盖浮动)

5. 绝对定位

5.1 概述&入门案例

绝对定位:通过设置边偏移,直接将元素放置在页面内或父元素内的某一位置。

注意:绝对定位元素,将 不占用标准流 位置

语法:

选择器 {

position : absolute ;

}

准备代码:(将为绿色 div 设置绝对定位)

代码实现及效果 1:

代码实现及效果 2:

小结:

1 、 绝对定位元素不占用标准流位置,不影响标准流布局(也不影响浮动)

2 、 绝对定位元素 展示效果 高于标准流(也高于浮动)

3 、 绝对定位边偏移起始位置:默认为页面左上角

5.2 进阶案例 1:父子关系中的绝对定位

5.2.1 概念及准备代码

绝对定位在未引入父子元素时,默认的边偏移起始为:页面左上角。

父子关系中,绝对定位子元素 的边偏移起始位置为: 最近的 定位父元素的 左上角

准备代码:

5.2.2 示例 1:父元素没有定位

示例 1:父元素没有定位

小结:

父元素没有定位(相对、绝对、固定),子元素边偏移从页面左上角开始

5.2.3 示例 2:父元素有定位

示例 2:父元素有定位。

小结:

父元素有定位(相对、绝对、固定),子元素边偏移 从定位父元素 左上角开始

5.2.4 示例 3:祖父和父元素都有定位

示例:祖父和父元素都有定位

小结:

祖父和父都存在定位(相对、绝对、固定)时,子元素边偏移从 最近父元素 的左上角开始

5.2.5 进阶小结

父子关系中,绝对定位子元素 的边偏移起始位置为: 最近的 定位父元素的 左上角

5.3 进阶案例 2:子绝父相

为保持父元素在原有文档流定位,为子元素能在父元素中任意放置。

布局中有 “子绝父相” 之说。

子绝父相:子元素绝对定位,其父元素用相对定位。

准备代码:

实现代码

小结:

父子定位中,通常为了布局的便捷,我们会采取“子绝父相”的布局手法。

5.4 总结

1 、绝对定位元素不占用标准流位置,不影响标准流布局(也不影响浮动)

2 、绝对定位元素 展示效果 高于标准流(也高于浮动)

3 、父元素没有定位(相对、绝对、固定),子元素边偏移从页面左上角开始

祖父和父都存在定位(相对、绝对、固定)时,子元素边偏移从 最近父元素 的左上角开始

4 为了布局方便,更多采取: 子绝父相

6. 固定定位

6.1 概述&入门案例

固定定位:通过设置边偏移,将元素固定在页面某一位置。

注意:

1 、 固定定位和绝对定位都是脱离了标准流,不会影响标准流布局(也不影响浮动)

2 、 固定定位元素,哪怕拖动滚动条,元素位置也保持在页面不变。(绝对定位做不到)

语法:

选择器 {

position : fixed ;

}

准备代码

代码实现及效果:

小结:

固定定位不会影响标准流(也不影响浮动)布局,在页面固定,哪怕拖动滚动条也一样。

6.2 进阶案例 1:父子关系中的固定定位

固定定位的边偏移,是以页面左上角为起点,不受父元素约束

准备代码

代码实现及效果

小结:

固定定位的边偏移,是以页面 左上角 为起点, 不受父元素约束

6.3 总结

1 、 固定定位和绝对定位都是脱离了标准流,不会影响标准流布局(也不影响浮动)

2 、 固定定位元素,哪怕拖动滚动条,元素位置也保持在页面不变。(绝对定位做不到)

3 、固定定位的边偏移,是以页面 左上角 为起点,不受父元素约束

7. 定位总结

1、定位总结:

2、无论何种定位,未设置边偏移的定位,都默认摆放在其标准流位置上

3 、边偏移和 margin 区别:

边偏移:

仅用于定位(

static 不可用,浮动不可用)

仅改变定位(相对、绝对、固定)元素的展示位置

margin

所有状态的盒子均可用

不仅改变展示位置。

若为标准流、相对定位、浮动,还会扩大其在标准流或浮动中占用的位置。

8. 定位-周边知识

8.1 叠放次序:z-index

因为定位中,后来定位元素会覆盖其他定位元素,导致效果不可控

所以为了定位展示效果的可控, CSS 提供了定位元素 - 自定义叠放次序的设置。

叠放次序:用于给定位元素设置展示效果的优先级。

注意: 1 、 优先级越高,定位元素就越不容易被其他定位元素覆盖

2 、默认的叠放次序为 auto 。可以理解为 0

格式: z-index : 整数值 ;

准备代码:

示例代码及效果:

小结:

1 、 通过为定位元素设置 z-index ,可以调整定位元素优先级

2 、 仅定位元素才可以设置 z-index ,标准流和浮动设置无效

8.2 定位子元素-水平垂直居中

8.2.1 引言&概念

有时我们存在需要让子元素在父元素中 水平居中的需求,若使用标准流或浮动,我们可以通过设

margin:0 auto; 来解决。

但无法解决垂直居中问题,只能不断设置 margin 来解决,不但费时费事,而且无法动态改变。

所以 CSS 中,我们需要学习如何通过设置边偏移 +margin ,达到水平居中效果。

常见的 定位子元素 - 水平居中方式:

1 、 动态居中设置

2 、 手动居中设置

8.2.2 动态居中设置

语法格式:

选择器 {

width : 必须设置一个值;

height : 必须设置一个值;

position : absolute/fixed ;

top : 0 ;

bottom : 0 ;

left : 0 ;

right : 0 ;

margin : auto ;

}

注意:

子元素 - 设置: 绝对 定位,子元素在 内 水平垂直居中(如果父是 body ,相当于页面水平垂直居

中)

子元素 - 设置: 固定 定位,子元素在 页面 内 水平垂直居中

适用于:快速设置子元素的水平垂直居中效果。

8.2.3 手动居中设置

语法格式:

选择器 {

width : 必须设置一个值;

height : 必须设置一个值;

position : absolute/fixed ;

top:50 % ;

left:50 % ;

margin-top:-(宽度/2-边框) px ;

margin-left:-(高度/2-边框) px ;

}

注意:

子元素 - 设置: 绝对 定位,子元素在 内 水平垂直居中(如果父是 body ,相当于页面水平垂直居中)

 子元素 - 设置: 固定 定位,子元素在 页面 内 水平垂直居中

适用于:手动自定义设置子元素的水平垂直居中效果。

建议使用:动态居中设置。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS定位特性
CSS属性书写顺序 布局定位属性:display / position / float / clear / visibility / overflow 自身属性:width / height / margin / padding / border / background 文本属性:color / font / text-decoration / text-align / vertical-align / white-space / break 其他属性:content / cursor /border-r
小丞同学
2021/08/16
6280
五. css 布局之 position(定位)
包含块( containing block ) 正常情况下: 包含块就是离当前元素最近的祖先块元素,
小海怪的互联网
2020/10/26
2.2K0
HTML定位简介
定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样。如果理清了定位的原理,那定位会让网页实现的更加完美。
_春华秋实
2019/02/22
1.8K0
HTML定位简介
Web前端学习 第2章 网页重构9 css定位
在我们浏览网页的过程中,经常会发现网页中的元素重叠展示,例如一个列表压在了一张图片之上,或者浏览器右下角突然弹出的广告压到了其他元素之上,这些都需要使用css的定位才能实现,本节我们就讲解css定位相关的属性,定位可以分为三类:
学习猿地
2020/06/15
5390
前端成神之路-定位
标准流在最底层 (海底) ------- 浮动 的盒子 在 中间层 (海面) ------- 定位的盒子 在 最上层 (天空)
海仔
2020/11/12
2K0
前端成神之路-定位
CSS&HTML面经专题——(三)CSS定位/盒模型/经典布局/浮动布局与BFC
position:static | relative | absolute | fixed | center | page | sticky
玖柒的小窝
2021/10/26
2.1K0
CSS&HTML面经专题——(三)CSS定位/盒模型/经典布局/浮动布局与BFC
2021前端面试高频 HTML + CSS
当DOM的变化影响了元素的几何信息(元素的的位置和尺寸大小),浏览器需要重新计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排。
程序员海军
2021/10/11
1K0
2021前端面试高频 HTML + CSS
CSS进阶内容—浮动和定位详解
当然如果没有学习之前的知识,可以到我的主页中查看之前的文章:秋落雨微凉 - 博客园
秋落雨微凉
2022/10/25
2.3K0
CSS进阶内容—浮动和定位详解
CSS布局(三) 布局模型
布局模型 在网页中,元素有三种布局模型: 1、流动模型(Flow) 默认的 2、浮动模型 (Float) 3、层模型(Layer) 1、流动模型(Flow) 流动(Flow)模型是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。 流动布局模型具有2个比较典型的特征: 第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。 (每一个便签都显示着自己本来默认的那
柴小智
2018/04/10
2.4K0
CSS布局(三) 布局模型
CSS 定位
携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情 >>
默默的成长
2022/11/02
7840
CSS 定位
【CSS3】 float浮动与position定位常见问题(个人笔记)
[前端CSS高频面试题]如何画0.5px的边框线(详解) CSS3基础属性大全 CSS3动画属性 animation详解(看完就会) CSS3 transform 2D转换之移动 旋转 缩放(详细讲解看完就会) CSS3 Z—Index 详解 CSS3 positon定位详解(通俗易懂)
坚毅的小解同志的前端社区
2022/11/28
5770
【CSS3】 float浮动与position定位常见问题(个人笔记)
HTML & CSS页面布局之定位
默认情况下,HTML元素都在标准流中呈现和展示。我们之前把元素分为块级元素,行内元素,行内块级元素,他们的特性是块级独占一行,行内和行内块级可以在一行内共存,这些特性都是针对标准流的。总结一下就是,标准流中元素只能在水平或垂直方向上排版。如果元素是块级元素, 那么就会垂直排版,如果元素是行内元素/行内块级元素, 那么就会水平排版。
用户5997198
2020/05/12
5.7K0
【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平/垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★
从层级上来说 , 普通流盒子 在最底层 , 浮动盒子 在中间层 , 定位盒子 在最上层 ;
韩曙亮
2024/08/09
8940
【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平/垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★
【CSS】固定定位 ( 固定定位概念语法 | 固定定位 = 浏览器可视窗口 + 边偏移 | 代码示例 )
固定定位 是 固定在屏幕中的某个位置 , 即使拖动滚动条 , 固定定位的元素仍然保持位置不变 ;
韩曙亮
2023/04/16
1.9K0
【CSS】固定定位 ( 固定定位概念语法 | 固定定位 = 浏览器可视窗口 + 边偏移 | 代码示例 )
CSS中的定位详解
含义:采用绝对定位的元素在移动位置的时候是以父元素为参照物的,但是这个父元素必须满足一定的条件才能成为绝对定位元素眼里的父元素。
阿年、嗯啊
2021/04/27
1.6K0
CSS中的定位详解
定位(position)
静态定位是所有元素的默认定位方式,当position属性的取值为static时,可以将元素定位于静态位置。 所谓静态位置就是各个元素在HTML文档流中默认的位置。
星辰_大海
2020/09/30
1.4K0
前端常用布局方案总结
若元素为行内块级元素,可以通过为其父元素设置text-align: center 实现水平居中。
越陌度阡
2022/05/06
2.8K0
前端常用布局方案总结
网页元素定位的详细解读
在网页布局中,定位可以让我们手动控制元素在其包含块中的精确位置,这主要通过 CSS 的position属性来实现。
友儿
2024/09/03
2900
CSS定位
特性: 1. 移动的出发点是自身标准流的位置 2. 相对定位移动的元素不会对别的元素产生干扰,“没有脱标”,真正占得位置还是标准流的位置(肉体不在 灵魂永驻) 3. 可以盖在标准流的上方 4. 一般用于微调元素和配合绝对定位来实现效果
羊羽shine
2019/06/20
1.1K0
前端基础-CSS定位
注意:偏移值准确的理解是“距离什么位置有多少像素” 。 如 top:100px; 距离顶部为100像素 (向下走)
cwl_java
2020/04/07
6640
前端基础-CSS定位
相关推荐
CSS定位特性
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档