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

浮动

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

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

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

什么是浮动?

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

float:left/right/none/inherit  


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

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

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

举个生活中的例子:人们在地面上排队,当其得到一个飞行技能(也就是浮动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:

给01div盒子一个float:left;

因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了02和03盒子,使02、03盒子 从视图中消失,但是里面的文本不会因为

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

如果把所有三个框都向左移动,那么框 1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

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

可以在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属性,我在下一节写成清除浮动的集中常见的方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值