欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[js的乐趣]关于float浮动的理解(举例说明)

程序员文章站 2022-05-29 15:13:25
...
浮动
[js的乐趣]关于float浮动的理解(举例说明)

布局时,因为一张图片迟迟放不对位置,而导致页面进程为0呢?
到底用display:inline-block;还是用浮动float来解决呢?

是不是因为浮动,导致下面的同级盒子不在应有的位置位置上面呢?

在写导航栏的时候,如何让每个li都在一行显示?

什么是浮动?

float属性定义了元素在哪个方向浮动

float:left/right/none/inherit  


一、浮动也就脱离了标准文档流

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。 

举个生活中的例子:人们在地面上排队,当其得到一个飞行技能(也就是浮动float),那么便可以不受地面的约束。

而且他原本的位置(占位)也就不存在了,后面的人会向前进一位

[js的乐趣]关于float浮动的理解(举例说明)


举个例子:

<style type="text/css">
	.one{margin: 100px;}
	.on01 { width: 50px;
		height: 100px;
		background-color: #008000;
		float: left; }
	.on02{  width: 50px;
		height: 50px;
		background-color: #ccc;}
	.on03{  width: 50px;
		height: 50px;
		background-color: #7FFFD4; }
		</style>
	</head>
	<body>
		<div class="one">
			<div class="on01">01</div>
			<div class="on02">02</div>
			<div class="on03">03</div>
		</div>
	</body>

这是三个不浮动的div:

[js的乐趣]关于float浮动的理解(举例说明)

给01div盒子一个float:left;

[js的乐趣]关于float浮动的理解(举例说明)因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了02和03盒子,使02、03盒子 从视图中消失,但是里面的文本不会因为

给三个div盒子都设置左浮动

[js的乐趣]关于float浮动的理解(举例说明)如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

那么如何让02和03 都在01的右侧且并排显示呢?

[js的乐趣]关于float浮动的理解(举例说明)

可以在02和03盒子加一个父盒子box,让box左浮动02和03 不浮动(代码如下)

.box{	float: left;	
}
.on02{  width: 50px;
    height: 50px;
    background-color: #ccc;
}
.on03{  width: 50px;
    height: 50px;
    background-color: #7FFFD4; 
    float: left; }

<div class="one">
	<div class="on01">01</div>
	    <div class="box">		
	    <div class="on02">02</div>
	    <div class="on03">03</div>
	</div>
</div>
这样会得到我们希望的效果。不幸的是,下一个元素会受到这个浮动元素的影响。为了解决这个问题,有些人选择对布局中的所有东西进行浮动,然后使用适当的有意义的元素(常常是站点的页脚)对这些浮动进行清理。这有助于减少或消除不必要的标记。

css给我们另一个属性来解决这种因浮动而产生烦恼  clear属性,我在下一节写成清除浮动的集中常见的方法