首页 > 其他分享 >05-CSS中的浮动

05-CSS中的浮动

时间:2023-05-11 20:14:34浏览次数:36  
标签:浮动 both 元素 05 clear after 文档 CSS

CSS 中的浮动

HTML 页面的文档流

1、标准文档流 --- 面试题
	标准文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式
	当前面内容发生了变化,后面的内容位置也会随着发生变化

2、留存弊端
	无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”
	显然标准流已经无法满足需求,这就要用到浮动
	以及某些元素会出现的特定区域,这就要用到定位

什么是浮动?

浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次

浮动层:给元素的 float 属性赋值后,就是脱离文档流,进行左右浮动,紧贴着父元素(默认为body文本区域)的左右边框
而此浮动元素在文档流空出的位置,由后续的(非浮动)元素填充上去
块级元素直接填充上去,若跟浮动元素的范围发生重叠,浮动元素覆盖块级元素

float

浮动的属性

float:
	none:	默认值。元素不浮动,并会显示在其在文本中出现的位置
	left: 	元素向左浮动
	right:	元素向右浮动

浮动后的div宽度会变成 0,但是其内边框可能撑起它的宽和高

浮动的特征

1、块级元素失去“块状”换行显示特征,变为行内元素
2、紧贴着上一个浮动元素(同方向)或父元素的边框,如果宽度不够将换行显示
3、占据行内元素的空间、导致行内元素围绕显示 --- 图文环绕效果
4、可以强迫浮动元素换行显示, 使用 clear 属性
	clear:
		none:	默认值,允许两边都可以有浮动对象
		left:	不允许左边有浮动对象
		right:	不允许右边有浮动对象
		both:	两边都不允许都浮动对象

浮动能做哪些事情?

使多个div显示在同一行
常见的效果:各种导航栏,商品的排版,新闻的排版,文字环绕效果......

浮动的弊端

导致高度塌陷
	当对于所有的子元素都设置了浮动之后,而父元素没有去设置高度,
父元素失去了支撑同时父元素的高度消失,缩成了一条线,高度出现了塌陷

	解决方案:
		1、直接添加高度(不推荐)
			高度固定死,内容如果是后端返回的数据不固定的话,不够灵活

		2、额外标签法(不推荐)
			在最后一个浮动标签后,新加一个标签,给其设置 clear:both
			clear: both, 本质是闭合浮动,就是让父盒子闭合出口和入口,不让子盒子出来

			如果我们清除了浮动,父元素自动检测子盒子最高的高度,然后与其同高
			优点:通俗易懂,方便
			缺点:添加无意义标签,语义化差

		3、父级添加 overflow 属性(不推荐)
			父元素添加 overflow:hidden
			overflow: hidden, 本质是通过触发BFC方式,实现清除浮动

			优点:代码简洁
			缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素

		4、使用 after 伪元素清除浮动
			.clear::after {
				content: '';
				display: block;(必须变成块元素)
				height:0; 处理兼容,让没有高度
				visbility: hidden;处理兼容,让消失
				clear: both;
			}
			.clear {
				*zoom: 1;
				/* ie6 清除浮动的方式, * 号 只有在IE6 IE7执行,其他浏览器不执行 */
			}
			优点:符合闭合浮动思想,结构语义化正确
			缺点:ie6-7不支持伪元素::after,使用zoom:1触发hasLayout

		5、使用 before 和 after 双伪元素清除浮动
			.clear::after, .clear::before {
				content: '';
				display: block;
			}
			.clear::after {
				clear: both;
			}
			.clear {
				*zoom: 1;
				/* ie6 清除浮动的方式, * 号 只有在IE6 IE7执行,其他浏览器不执行 */
			}

			优点:代码更简洁
			缺点:用zoom:1触发hasLayout

标签:浮动,both,元素,05,clear,after,文档,CSS
From: https://www.cnblogs.com/fszj/p/17392080.html

相关文章

  • 04-CSS基础
    CSS基础什么是CSSCSS指层叠样式表(CascadingStyleSheets)WEB标准中的表现标准语言简单说就是如何修饰网页信息的显示样式目前推荐遵循的是W3C发布的CSS3.01998年5月21日由w3C正式推出的css2.1CSS的语法 由两个主要的部分构成:选择器,以及一条或多条声明 选择......
  • [NOIP2005 普及组] 校门外的树
    [NOIP2005普及组]校门外的树题目描述某校大门外长度为\(l\)的马路上有一排树,每两棵相邻的树之间的间隔都是\(1\)米。我们可以把马路看成一个数轴,马路的一端在数轴\(0\)的位置,另一端在\(l\)的位置;数轴上的每个整数点,即\(0,1,2,\dots,l\),都种有一棵树。由于马路上有一......
  • 05 ffmpeg语法使用参考(个人版)
    【一】合并语法和步骤参考下面是在Python中使用ffmpeg命令将文件夹中的所有.ts文件合并为一个.mp4文件的步骤和代码示例:(1)安装FFmpeg库使用Python之前,您需要安装FFmpeg库。您可以使用如下命令在命令行中安装它:pipinstallffmpeg-python(2)导入FFmpeg库在Python脚本中,您需要......
  • [NOIP2005 普及组] 陶陶摘苹果
    [NOIP2005普及组]陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出\(10\)个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个\(30\)厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知\(10\)个苹果到地面的高度,以及陶陶......
  • 【2023.05.07 模拟赛】T3 树数树
    Description牛牛有一棵\(n\)个点的有根树,根为1。我们称一个长度为\(m\)的序列\(a\)是好的,当且仅当:\(\foralli\in(1,m],\mathrm{a}_{\mathrm{i}}\)为\(\mathrm{a}_{\mathrm{i}-1}\)的祖先或\(\mathrm{a}_{\mathrm{i}-1}\)是\(\mathrm{a}_{\mathrm{i}}\)的......
  • CSS
    1.单位单位:px:如果我们将一个图片放大的话,我们会发现一个图片是有一个一个的小色块构成的,这一个小色块就是一个像素,也就是1px,对于不同的显示器来说一个像素的大小是不同的。百分比:也可以使用一个百分数来表示一个大小,百分比是相对于父元素来说的。em:基于字体大小的倍数 2.属性wi......
  • CSS :root的使用
    :root这个CSS伪类匹配文档树的根元素。对于HTML来说,:root表示<html>元素,除了优先级更高之外,与html选择器相同。所有主流浏览器均支持:root选择器,除了IE8及更早的版本。在声明全局CSS变量时:root会很有用。CSS变量(--*)带有前缀--的属性名,比如--example,表示的是带......
  • css
    css:级联样式表css定义:修饰网页(html在w3c中是结构化,css在w3c中就是表现化)修饰效果的种类:字体大小,颜色,高度,宽度等等css应用:一般用于对网页的效果进行修饰美化的工作css发展史1996发布css1.02010发布了css3.0沿用至今 ......
  • 【2023-05-08】保持淳朴
    20:00读书做人,不是两件事。将所读之书,句句体贴到自己身上来,便是做人之法,如此方叫得能读书;人若不将来身上理会,则读书自读书,做人自做人,只算做“不曾读书的人”。                                    ......
  • C/C++模拟银行排队叫号系统[2023-05-11]
    C/C++模拟银行排队叫号系统[2023-05-11]2、模拟银行排队叫号系统(难度等级A)[问题描述]模拟实现银行的排队叫号系统。[基本要求](1)假定银行上午9点开门,下午5点关门,期间每个小时的客流量不超过35人;(2)每个客户的基本信息包括:到达银行时间、业务需要办理的时长。这两项数据均......