浮动布局与定位布局

news2024/12/28 9:39:43

目录

前言:

浮动布局(Float Layout):

  定位布局(Positioning Layout):

 1.传统布局:

 1.1文档流布局:

1.1.1基本的布局方式:

1.1.2 块级元素: 

1.1.3调整元素:

1.2浮动布局:

1.2.1浮动布局允许元素向左或向右浮动,使其周围的文本或其他元素环绕它。

1.2.2浮动元素会脱离正常的文档流,但仍然占据空间,并且会影响其他元素的布局。

1.2.3常用于实现多列布局、文本环绕图像等效果。

1.2.4需要注意清除浮动,以避免布局问题(如父元素高度塌陷)。

1.3定位布局:

1.3.1定住指定位置:

1.3.1相对定位:

1.3.1绝对定位:

2.目前主流的Flex布局(弹性盒模型):

2.1lex布局:

2.2Flex布局基于两条轴进行布局:

2.3设置容器的 display 属性:

2.4Flex布局适用地方:

3.浮动篇:

3.1浮动的基本概念和用法:

3.1.1浮动方向:

3.1.2脱离文档流:

3.1.3边界行为:

3.2浮动的应用:

3.2.1图文环绕:

3.2.2水平布局:

3.3浮动的注意事项:

3.3.1父元素高度塌陷:

3.3.1元素重叠:

4.定位篇(position):

4.1定位的基本概念和用法:

4.1.1绝对定位(absolute):

4.1.2相对定位(relative):

4.2定位的方向和距离:

4.2.1定位元素的基本操作:

4.2.2定位元素的使用方法:

4.3父相子绝技巧:

4.3.1布局技巧:

4.3.2常用技巧:

4.5z-index属性:

结语:


前言:

今天我们来分享一下关于浮动布局和定位布局,以下是对二者的一个介绍:

浮动布局(Float Layout):

浮动布局在CSS中是一种非常重要的布局技术,它允许元素沿着其容器的左侧或右侧浮动,同时其他内容会环绕它。浮动最初是为了实现文本环绕图像的效果而设计的,但随后它被广泛用于创建多列布局和各种复杂的页面布局。

当元素被设置为浮动时,它会脱离正常的文档流,但仍然会占据空间(即它会影响布局)。浮动元素之后的元素会围绕它流动,这种特性使得浮动布局在实现多栏布局时特别有用。然而,浮动布局也有一些挑战,比如清除浮动(clearing floats),以确保父元素能够正确地包含其浮动的子元素。

浮动布局的优点包括灵活性高、能够实现复杂的布局效果以及响应式设计。但缺点也很明显,比如需要额外注意清除浮动、布局容易受到外部因素影响等。

  定位布局(Positioning Layout):

定位布局是CSS中另一种强大的布局技术,它允许开发者将元素精确地放置在页面上的任何位置。定位布局基于坐标系统,其中元素的定位可以通过设置toprightbottomleft属性来控制。

定位布局有两种主要类型:相对定位(relative positioning)和绝对定位(absolute positioning)。相对定位是相对于元素在文档流中的原始位置进行定位,而绝对定位是相对于最近的已定位祖先元素(即设置了position属性为relativeabsolutefixed的元素)进行定位。如果没有已定位的祖先元素,绝对定位的元素将相对于初始包含块(通常是视口或页面)进行定位。

定位布局的优点在于它能够提供精确的布局控制,使元素能够准确地出现在指定的位置。这种布局方式在实现需要精确对齐或重叠元素的复杂布局时特别有用。然而,定位布局也有一些缺点,比如需要额外注意定位上下文和层叠顺序(z-index)等问题。

 

 1.传统布局:

 1.1文档流布局:

1.1.1基本的布局方式:

这是最基本的布局方式,其中网页元素按照其在HTML代码中的顺序从上到下、从左到右进行排列。

1.1.2 块级元素: 

块级元素(如 <div><p> 等)默认独占一行,而行内元素(如 <span><a> 等)则与其他行内元素并排显示。

1.1.3调整元素:

通过调整元素的 marginpaddingdisplay, 和 line-height 等属性,可以控制元素在页面上的位置和外观。

1.2浮动布局:

1.2.1浮动布局允许元素向左或向右浮动,使其周围的文本或其他元素环绕它。

1.2.2浮动元素会脱离正常的文档流,但仍然占据空间,并且会影响其他元素的布局。

1.2.3常用于实现多列布局、文本环绕图像等效果。

1.2.4需要注意清除浮动,以避免布局问题(如父元素高度塌陷)。

1.3定位布局:

1.3.1定住指定位置:

通过设置元素的 position 属性为 relative(相对定位)或 absolute(绝对定位),可以将元素定位在指定位置。

1.3.1相对定位

元素相对于其正常位置进行定位。即使移动了元素,它仍然占据其原始空间。

1.3.1绝对定位

元素相对于最近的已定位祖先元素(或相对于初始包含块,如果没有已定位的祖先元素)进行定位。绝对定位的元素不占据空间,可以覆盖其他元素。

2.目前主流的Flex布局(弹性盒模型):

2.1lex布局:

lex布局是一种现代的、灵活的布局方式,允许容器中的项目以各种方式进行对齐、方向和顺序的控制。

2.2Flex布局基于两条轴进行布局:

主轴(默认为水平方向)和交叉轴(默认为垂直方向)。

2.3设置容器的 display 属性:

通过设置容器的 display 属性为 flex 或 inline-flex,可以启用Flex布局。然后,可以使用各种Flex属性(如 flex-directionflex-wrapjustify-contentalign-items 等)来控制项目的布局和对齐方式。

2.4Flex布局适用地方:

Flex布局非常适合用于创建复杂的、响应式的布局,特别是当需要在不同屏幕尺寸和方向上保持布局的一致性时。

3.浮动篇:

3.1浮动的基本概念和用法:

3.1.1浮动方向

float属性主要有两个值,leftright,分别表示元素向左浮动和向右浮动。

3.1.2脱离文档流

浮动元素会脱离其正常的文档流位置,但仍然会占据空间(不同于绝对定位的元素,它们会从文档流中完全移除)。这意味着浮动元素后面的内容会围绕浮动元素流动。

3.1.3边界行为

浮动元素会一直浮动,直到它遇到父元素的边界或其他浮动元素。如果一行内空间不足,浮动的元素会下移到下一行。

3.2浮动的应用:

3.2.1图文环绕

这是浮动的原始用途,允许文本围绕图像流动。

3.2.2水平布局

利用浮动可以很容易地实现水平排列的盒子布局。相较于行内块元素,使用浮动进行水平布局具有更好的性能和可控性。

3.3浮动的注意事项:

3.3.1父元素高度塌陷

如果父元素只包含浮动元素,它可能会出现高度塌陷的情况,因为浮动元素不参与父元素的高度计算。解决这个问题的一种方法是使用“清除浮动”的技巧,例如添加一个空的块级元素并应用clear: both;样式。

3.3.1元素重叠

由于浮动元素会脱离文档流,它们可能会与正常流中的其他元素重叠,需要特别注意。

4.定位篇(position):

4.1定位的基本概念和用法:

4.1.1绝对定位(absolute)

元素会脱离正常的文档流,并且相对于其最近的已定位祖先元素(即设置了position属性为absoluterelativefixedsticky的元素)进行定位。如果没有已定位的祖先元素,它会相对于初始包含块(通常是视口或页面)进行定位。

4.1.2相对定位(relative)

元素相对于它在正常文档流中的位置进行定位。即使移动了元素,它仍然占据其原始空间。这意味着其他元素不会填补它移动后留下的空间。

4.2定位的方向和距离:

4.2.1定位元素的基本操作:

定位元素可以通过toprightbottomleft属性来指定其在各个方向上的偏移量。这些属性决定了元素相对于其定位上下文(对于绝对定位,是最近的已定位祖先元素;对于相对定位,是元素自身在正常文档流中的位置)的位置。

4.2.2定位元素的使用方法:

这些属性通常需要与定位类型(absoluterelative)一起使用才有效。单独设置这些属性而不设置定位类型通常不会产生任何效果。

4.3父相子绝技巧:

4.3.1布局技巧:

“父相子绝”是一种常见的布局技巧,其中父元素设置为相对定位,而子元素设置为绝对定位。这样,子元素会根据移动后的父元素的位置来定位自己,而不会受到其他元素的影响。

4.3.2常用技巧:

这种技巧在实现一些复杂的布局效果时非常有用,比如创建模态窗口、下拉菜单、提示框等。

4.5z-index属性:

当元素在页面上重叠时,可以使用z-index属性来控制它们的堆叠顺序。z-index值越大的元素在堆叠顺序中越靠上,因此会覆盖值较小的元素。

需要注意的是,z-index属性只对设置了定位(即position属性不为static)的元素有效。此外,具有相同z-index值的元素会按照它们在HTML代码中的顺序进行堆叠(后出现的元素会覆盖先出现的元素)。

结语:

今天的分享就先分享到这里了,这些内容都偏理论的知识了,不过学习就是这样需要持之以恒的坚持,莫道浮云遮蔽日,终有云开见日时。云城发韧,万里可期。我们一切的学习和努力无非是为了三个目标:'解释问题','解决问题','预测问题'。相信只要熬过这段低谷时光,自然会有未来的钟声敲响,我们是生生不息的火花,终将以灿烂为名,谢谢大家看到这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549399.html

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

相关文章

开发面试相关的编程题

1,【求数字1出现的次数】 问题描述: 输入一个整数n&#xff0c;求从1到n这n个整数(十进制)中1出现的次数。要求空间复杂度为O(n)。 输入描述: 1 输入的数据包含一行&#xff1a; 整数N&#xff0c;要求N>1 输出描述: 1 输出一个整数&#xff0c;表示从1到N这N个…

SQLServer CONCAT 函数的用法

CONCAT函数用于将多个字符串值连接在一起。以下是一个简单的示例&#xff0c;演示了如何使用CONCAT函数&#xff1a; -- 创建一个示例表 CREATE TABLE ExampleTable (FirstName NVARCHAR(50),LastName NVARCHAR(50) );-- 插入一些示例数据 INSERT INTO ExampleTable (FirstNam…

【晴问算法】入门篇—递归—数塔

题目描述 数塔就是由一堆数字组成的塔状结构&#xff0c;其中第一行1个数&#xff0c;第二行2个数&#xff0c;第三行3个数&#xff0c;依此类推。每个数都与下一层的左下与右下两个数相连接。这样从塔顶到塔底就可以有很多条路径可以走&#xff0c;现在需要求路径上的数字之和…

《仙剑7》登陆Xbox主机平台年末大作空窗期

首发一年后&#xff0c;《仙剑奇侠传7》终于登陆Xbox主机平台&#xff0c;而这也恰逢Xbox平台年末大作的窗口期。 随着年底大作的稀缺&#xff0c;以及海外3A RPG《星空》的延期&#xff0c;2022年底的这段时间给Xbox玩家体验《刀剑7》留下了一段空白。 可以说是因祸得福。 《仙…

白板手推公式性质 AR模型 时间序列分析

白板手推公式性质 AR模型 时间序列分析 视频讲解&#xff1a;https://www.bilibili.com/video/BV1D1421S76v/?spm_id_from.dynamic.content.click&vd_source6e452cd7908a2d9b382932f345476fd1 B站对应视频讲解(白板手推公式性质 AR模型 时间序列分析)

鸿蒙HarmonyOS应用开发之Node-API常见问题

ArkTS/JS侧import xxx from libxxx.so后&#xff0c;使用xxx报错显示undefined/not callable 排查.cpp文件在注册模块时的模块名称与so的名称匹配一致。 如模块名为entry&#xff0c;则so的名字为libentry.so&#xff0c;napi_module中nm_modname字段应为entry&#xff0c;大小…

tensorflow安装以及在Anaconda中安装使用

在遥感领域进行深度学习时&#xff0c;通常使用python进行深度学习&#xff0c;会使用到tensorflow的安装&#xff0c;今天小编就给大家介绍如何在Anaconda中安装tensorflow&#xff01; 下载Anaconda Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open…

DNS隧道攻击

什么是DNS隧道&#xff1f; DNS隧道是一种网络通信技术&#xff0c;它利用DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议来建立隐蔽的通信通道。在正常情况下&#xff0c;DNS协议主要用于将域名解析为IP地址&#xff0c;但攻击者可以通过构造特殊的…

windows下安装 isaac sim gym (OmniIsaacGymEnvs)

一、介绍 Isaac Sim是NVIDIA Omniverse平台的一款机器人仿真工具包&#xff0c;它具备构建虚拟机器人世界和进行实验的关键功能。该工具包为研究人员和从业者提供了所需的工具和工作流程&#xff0c;以创建健壮、物理精确的模拟和合成数据集。Isaac Sim通过ROS/ROS2支持导航和…

观成科技:白象组织BADNEWS木马加密通信分析总结报告

概述 白象&#xff0c;又名Hangover、Patchwork、摩诃草等&#xff0c;该组织主要针对中国、巴基斯坦等亚洲地区国家进行网络间谍活动&#xff0c;攻击目标以政府机构、科研教育领域为主。 自16年起&#xff0c;该APT组织一直持续使用攻击武器BADNEWS开展攻击活动&#xff0c…

【Java程序设计】【C00387】基于(JavaWeb)Springboot的校园食堂订餐系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园食堂订餐系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

快速上手Spring Cloud 十:Spring Cloud与微前端

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

2024年【G3锅炉水处理】考试题及G3锅炉水处理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 G3锅炉水处理考试题参考答案及G3锅炉水处理考试试题解析是安全生产模拟考试一点通题库老师及G3锅炉水处理操作证已考过的学员汇总&#xff0c;相对有效帮助G3锅炉水处理考试报名学员顺利通过考试。 1、【多选题】锅筒…

基于DWT(离散小波变换)的图像水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

Seata:分布式事务

Seata简介 Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff0c;简单可扩展自治事务框架&#xff09;是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。Seata 开源半年左右&#xff0c;目前已经有超过 1.1 万 star&#xf…

babyos 学习记录

宏定义头文件 将一个宏定义取不同的数据到不同的数组中&#xff1b; 侵入式链表 struct list_head { struct list_head *next, *prev; }; // 添加&#xff08;list_add_tail/list_add&#xff09;、删除、查找 xx.h // 定义一个用于链表管理的结构体 typedef sturct{ xxx …

搜维尔科技:【应急演练】【工业仿真】救援模拟演练可视化仿真项目实施

安全救援综合演练系统是一套面向公共安全事故、预案管理、应急救援模拟演练的虚拟仿真解决方案&#xff0c;它为警察、消防以及专门的应急救援保障部门提供一个综合的应急救援培训和仿真演练平台。平台主要通过设计不同的事故模型和特定的灾难场景&#xff0c;定制不同的应急救…

跨站脚本攻击

跨站脚本攻击又称XSS攻击&#xff0c;是代码注入攻击的一种。利用XSS漏洞&#xff0c;攻击者可以窃取Cookies或劫持会话&#xff0c;或注入恶意 HTML 或 JavaScript 代码到页面中&#xff0c;又或者将当前页面重定向至一个攻击者搭建的恶意网站。XSS漏洞的产生多是因为网站开发…

全国草地资源类型分布图

草地出现在世界各地&#xff0c;约占全球陆地面积的24%&#xff0c;大多分布于大陆内部气候干燥、降水较少的地区&#xff0c;其中澳大利亚、俄罗斯、中国、美国和巴西等国面积较大。中国草地面积约占国土面积的40%&#xff0c;主要分布在内蒙古、东北、西北和青藏高原&#xf…

前端学习之JavaScript有关字符串的一些方法

&#xff08;注释是对各个方法的一些解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>字符串</title> </head> <body><script>let str1 test1let str2 n…