浮动布局与定位布局

目录

前言:

浮动布局(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.mzph.cn/news/774740.shtml

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

相关文章

前端学习-HTML基础

一、简介 1.介绍 网页就是html文件&#xff0c;前端编写代码->浏览器解析代码->呈现网页 谷歌浏览器Blink内核最好 2.Web标准 让网页设计排版更统一规范 结构&#xff1a;对网页元素进行整理和分类&#xff0c;html 表现&#xff1a;设置网页元素的板式、颜色、大小等外…

PTL库位电子标签系统仓库目视化管理解决方案

PTL库位电子标签系统是一种先进的仓库管理技术&#xff0c;通过数字化和智能化手段实现了仓库目视化管理&#xff0c;为仓储行业带来了革命性的改变。本文将从PTL库位电子标签系统的特点、优势以及在仓库目视化管理中的应用等方面进行探讨。 PTL库位电子标签系统具有以下特点&a…

STM32F10X开发环境的搭建

一、keil软件安装 找到keil软件包&#xff0c;解压缩&#xff0c;找到keil5安装软件&#xff1a; 鼠标右键选择以管理员权限运行。点击next&#xff0c;直到安装结束。 安装完成后在桌面会出现keil5软件图标&#xff1a; 然后再安装相应的芯片支持包&#xff1a;我们用的是stm…

精酿啤酒:多阶段发酵工艺的特点与优势

Fendi Club啤酒采用多阶段发酵工艺&#xff0c;这种工艺在啤酒酿造中具有显著的特点和优势。 首先&#xff0c;多阶段发酵工艺是一种复杂的酿造过程&#xff0c;它包括多个阶段的发酵和陈化过程。这种工艺需要切确控制每个阶段的时间、温度和酵母种类等参数&#xff0c;以确保…

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

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

商标跨类异议与跨类保护!

有个朋友对普推知产老杨说收到某邮件&#xff0c;名下商标让某公司抢注了现在公告期&#xff0c;让赶紧提出来异议去处理下&#xff0c;怎么会有这样的事&#xff0c;相同的名称基本上在同类别相关产品是无法公告和获得初审的。 经详细检索分析后&#xff0c;发现不是这样一回…

easyx查找算法可视化--顺序查找/二分查找/分块查找

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 概述演示源码获取 概述 #顺序存储的顺序查找 √ #链式存…

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs()&#xff1a;递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir()&#xff1a;创建目录 2.3、…

Unity3d C#转换微信小游戏 Dotween插件在苹果(IOS)设备中异常问题高性能模式修复

问题 使用minigame-unity-webgl-transform插件转换微信小游戏&#xff0c;功能在安卓和开发工具上都能正常&#xff0c;不过使用Dotween(版本DOTweenPro v1.0.244)插件实现的功能在苹果系统中却都不能正常对比如下&#xff1a; 云移动正常&#xff1a; 云移动IOS异常&#x…

3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?

(1)iperf3简介 1.iperf3简介 2.用途&#xff08;特点&#xff09; 3.下载iperf3地址 &#xff08;2&#xff09;实战 1.iperf3参数 &#xff08;1&#xff09;通用参数&#xff08;客户端和服务器端都是适用的&#xff09; &#xff08;2&#xff09;客户端参数 实验1&…

题目:合唱队形(蓝桥OJ 0724)

问题描述&#xff1a; 解题思路&#xff1a; LIS的拓展&#xff0c;枚举i&#xff0c;以i位置为最长上升子序列的终点、最长下降子序列的起点。将上升与下降的值相加得以i位置为最高点得队形总人数。最后比较每个i位置&#xff08;1~n&#xff09;总人数的大小得最大队形总人数…

【前端学习——js篇】11.元素可见区域

具体见&#xff1a;https://github.com/febobo/web-interview 11.元素可见区域 ①offsetTop、scrollTop offsetTop&#xff0c;元素的上外边框至包含元素的上内边框之间的像素距离&#xff0c;其他offset属性如下图所示&#xff1a; 下面再来了解下clientWidth、clientHeight…

基于单片机防丢失设备的设计和实践

摘要:防止老人或者小孩走丢走失,还可以放在汽车里,利用GPS系统,设计实现了基于单片机的防丢失设备。设备利用液晶显示屏显示信息,并实时发送位置短信到手机传输当前位置的纬度和经度坐标,实现了定位与监测功能。测试结果表明,利用该设备和手机可以同时观察老人或小孩携带…

学点儿数据库_Day11_多表、等值连接、内连接、模糊查找

1 多表 学生表、班级表、课程表、班级课程表 关系型数据库&#xff1a; MySql、SqlServer、Oracle 相同的数据出现多次绝不是一件好事&#xff0c;这是关系数据库设计的基础。关系表的设计就是要把信息分解成多个表&#xff0c;一个数据一个表&#xff0c;各表通过某些共同的…

最新版puppeteer 在linux下的安装教程

最新版的 puppeteer 在安装的时候&#xff0c;Chromium不会自动下载&#xff0c;导致安装失败 这个时候需要跳过Chromium的安装&#xff0c;然后手动下载Chromium并安装。 1、先设置npm跳过Chromium下载 export PUPPETEER_SKIP_DOWNLOADtrue 2、安装puppeteer npm i pup…

iOS_convert point or rect 坐标和布局转换+判断

文章目录 1. 坐标转换2. 布局转换3. 包含、相交 如&#xff1a;有3个色块 let view1 UIView(frame: CGRect(x: 100.0, y: 100.0, width: 300.0, height: 300.0)) view1.backgroundColor UIColor.cyan self.view.addSubview(view1)let view2 UIView(frame: CGRect(x: 50.0, …

阿里云服务器优惠价格61元一年,多配置报价,来看看

2024年阿里云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网aliyunfuwuqi.com整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新…

【MD】激光驱动原子动力学的全尺寸从头算模拟

Zeng Q, Chen B, Zhang S, et al. Full-scale ab initio simulations of laser-driven atomistic dynamics[J]. npj Computational Materials, 2023, 9(1): 213.核心研究内容&#xff1a; 本文研究了激光驱动的原子动力学的全尺度从头算模拟。研究的重点是探讨在极端条件下材料…

maya导入导出bvh 自动 脚本

目录 maya打开脚本编辑器 运行打开bvh脚本 maya导出bvh脚本 maya打开脚本编辑器 打开Maya软件,点击右下角 “脚本编辑器” 运行打开bvh脚本<