CSS之float属性详解

float官方文档概念

float属性指定一个盒子(元素)是否应该浮动,可以设置浮动方向。

css语法

float:left|right|none|inherit ;

属性值:
描述
left元素向左浮动
right元素向右浮动
none默认值。元素不浮动,并会显示在其文本中出现的位置
inherit规定应该从父元素继承float属性的值

例子(怎样一个浮动法)

简单来说就是让块级元素并排在一行当中显示。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS之float详解</title>
	<style>
.left {
	height: 60px;
	width: 60px;
	background-color: #ffddee;
    float: left;
}
.right {
	height: 60px;
	width: 60px;
	background-color: #ffddee;
	float: right;
}
div {
    padding: 15px 20px;
    font-size: 14px;
    color: #333;
}

</style>
</head>
<body>
<div class="left">
    左浮动
  </div>
  <div class="right">
    右浮动
  </div>
</body>
</html>

在这里插入图片描述
如果我们把左右浮动给去掉那么块级元素就独自占一行(这个解说够清楚了吧)。
在这里插入图片描述

float会导致的问题

浮动元素会脱离文档流,因此,它无法使得其他元素和其相对位置关系保持正常。也无法使得自己的父容器正确计算自己的大小。(这个没那么好理解,继续往下看

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS之float详解</title>
	<style>
		.father {
			width: 200px;
			padding: 10px;
			background-color: #ffd664;
			border: 1px solid #aaa;
		}
		.left {
			height: 60px;
			width: 60px;
			background-color: #ffddee;
		    float: left;
		}
		.right {
			height: 60px;
			width: 60px;
			background-color: #ffaaee;
			float: right;
		}
		div {
		    padding: 15px 20px;
		    font-size: 14px;
		    color: #333;
		}
		.footer {
			width: 200px;	
			height: 100px;
			background-color: #eee;
			margin: 5px;
		}

</style>
</head>
<body>
	<div class="father">
<div class="left">
    左浮动
  </div>
  <div class="right">
    右浮动
  </div>
  </div>
  <div class="footer">
    底部块级元素
</div>
</body>
</html>

在这里插入图片描述
上图中我们可以看到:包裹左右浮动的父元素(黄色块)没办法包裹在其内部,这时候我们说是父元素高度坍塌,左右浮动块已经脱离了文档流,导致底部块级元素(灰色块)的位置不是我们想要的正常效果。要解决这种问题通常采用:清除浮动和闭合浮动。

清除浮动

清除对应的单词是 clear,对应 CSS 中的属性是 clear:left | right | both | none。

		.footer {
			width: 200px;	
			height: 100px;
			background-color: #eee;
			margin: 5px;
			clear: both; //新增清除浮动
		}

在这里插入图片描述
这时候我们看到只能使底部块级元素不受浮动的影响,正常显示(是我们想要的效果),但是父元素高度坍塌的问题并没有解决掉,所以我们采取闭合浮动的方式,而不应该是清除浮动。

闭合浮动

更确切的含义是使浮动元素闭合,从而减少浮动带来的影响。

<div class="father clear">
<div class="left">
    左浮动
  </div>
  <div class="right">
    右浮动
  </div>
  </div>

 .clear::after {
        	clear: both;
		    content: ".";
		    display: block;
		    height: 0;
		    visibility: hidden;
        }
        .clear {
        	*room: 1;//这里的room是什么鬼???下面解答
        }

在这里插入图片描述
推荐查看:Zoom:1 是什么鬼?有什么作用?

总结

关于float属性的解说到这里就结束了,如果有错误的地方欢迎大家可以指正。讲解得不到位或者还有困惑的话推荐查看以下两篇文章:

2020.5.11补充

回来又看看,我记得当时学的时候是说float脱离了文档流,但是后面的内容怎么没有顶上去呢?所以又去找了答案。float的元素脱离正常的文档流,但是还会占据文档流的文本空间。
float探索,脱离文档流?不脱离文档流?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值