CSS笔记-7:浮动

浮动的简单介绍

浮动可以改变元素标签的排列方式,最典型的应用就是让多个行内块元素在一行内排列显示。
一般来说,如果是多个盒子纵向排列用标准流即可,横向排列才需要考虑使用浮动。
浮动的语法:选择器{ float: 属性值;},其中的属性有三个:none(元素不浮动,默认值)left(元素向左浮动)right(元素向右浮动)
浮动的规则是创建浮动框将其移动到一边,直到左边缘或右边缘触及一个包含块或另一个浮动框的边缘。

浮动需要注意的问题

浮动元素会脱离标准流(脱标)

1.脱离标准流的控制移动到指定位置,即为脱标
2.浮动的盒子不再保留原先的位置,该位置会被其他的标准流元素占用。实际上,添加了浮动属性值的盒子是浮于其他盒子上方的,因此盒子就算本来的位置没有变化,只是添加了一个浮动属性,也会让页面下方的标准流盒子向上填补该位置,形成一个盒子叠加的效果
正是因为以上的属性,浮动的盒子并不会导致父元素发生塌陷,因为实际上浮在父级盒子的上方,从而不会影响到它本身。

浮动的盒子会在一行显示

这里的“一行”,指的是浮动的盒子都会顶到边缘的上沿进行显示,因此当页面足够大时,所有浮动的盒子都会顶在最上方。当浏览器的窗口缩小时,一些超出屏幕显示范围的盒子就会下移。

浮动元素都具有行内块元素的特性

无论原先浮动元素是什么类型的元素,在添加浮动属性之后,都会带有行内块元素的特性。
行内元素在浮动之后可以直接添加宽度和高度。

浮动布局的方法

一般而言,为了使浮动的元素可以排列在需要的位置,会将浮动元素搭配一个标准流元素的父级进行使用。形象地说,就是将浮动元素装在一个设置好的箱子里,防止它随便“跑出来”。父元素掌管上下,子元素控制左右。
一般来说只要拼父级元素中有一个子级元素浮动,那么其他的兄弟元素要一起浮动,以免发生冲突。

清除浮动

在很多情况下,父元素的大小不能直接给出而是要用子元素去撑开盒子,这时如果有浮动的情况,会让子元素浮在父元素上方,导致父元素的高度变为0 。这时候就需要使用清除浮动的方法。
清除浮动的本质就是清除浮动元素造成的影响,但是如果父盒子本身设定了高度,就不需要额外清除浮动。若未清除盒子,就使用清除浮动使得父盒子的大小由子盒子确定,同时父级获得了高度,就不会影响后面的标准流标签了。

选择器{clear:属性值}

属性值有三种,即left, right, both。第一个对应的是不允许左侧有浮动元素,即清除左侧浮动的影响,后面的以此类推。在一般的开发当中都是使用both属性

额外标签法

在需要清除浮动的标签之后添加一个额外的标签把元素隔开,控制在父元素标签的盒子里。

<style>
	.clear{
	clear:both;
	}
</style>
<body>
	<div class = "box">
		<div> div1 </div>
		<div> div2 </div>
		<div class = "clear"></div>
	</div>
</body>

在后面也可以添加其他的空标签,但是一定要是块级元素,不能是行内元素。

为父级元素添加overflow属性

为父级添加overflow属性也可以清除浮动,其属性值设置为hidden,auto,scroll。
还是以上面的代码为例(去除后面添加的额外标签法的视为源码)

.box{
	overflow:hidden;
}

在父元素的样式中添加这样的一行代码就可以实现清除浮动的功能。
overflow的一个缺点就是会隐藏溢出部分的盒子。

:after伪元素

:after法是额外标签法的升级版,但是也是给父元素添加。

<style>
	.clearfix:after{
		content: "";
		display: block;
		height: 0;
		clear :both;
		visibility: hidden;
	}

.clearfix{ /*专为IE6\7设计以兼容*/
 *zoom:1;
}
</style>
<body>
....
<div class = "box clearfix">
...
</div>

实际上就是在代码的最后添加了一个块级元素将父盒子撑开,与额外标签法的原理一样。

双伪元素清除浮动
<style>
	.clearfix:before,
	.clearfix:after{
		content: "";
		display: table;
	}
	.clearfix:after{
		clear:both;
	}

	.clearfix{ /*专为IE6\7设计以兼容*/
	 *zoom:1;
	}
</style>
<body>
....
<div class = "box clearfix">
...
</div>

这样的做法相当于在子盒子的前后都加上了一个块级元素。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值