CSS之浮动知识点总结

前言

在网页布局中,很多布局效果标准流(文档流)没有办法完成,此时可以利用浮动完成布局,浮动可以改变元素标签默认的排列方式,可以让多个块级元素一行内排列显示。


一、浮动

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

二、浮动特性

  1. 浮动的元素会脱离标准流(脱标)。
  2. 浮动的元素会一行内显示并且元素顶部对齐。
  3. 浮动的元素会具有行内块元素的特性。

2.1 脱标

  1. 脱离标准流的控制移动到指定位置。
  2. 浮动的盒子不再保留原先的位置。

示例代码:

<style>
.box1 { width: 200px; height: 200px; background-color: red; }
.box2 { width: 200px; height: 200px; background-color: blue; }
</style>
<body>
	<!--浮动的盒子会跑到标准流盒子的顶部去-->
	<!-- 设置了浮动的元素,不占位置,脱标-->
	<div class="box1"> 浮动的盒子</div>
	<div class="box2"> 标准流盒子</div>
</body>

2.2 设置浮动的元素,拥有行内块元素相似的特性

  1. 如果行内元素添加了浮动后,则不需要转换块级/行内块元素就可以直接给高度和宽度。
  2. 浮动的盒子中间是没有缝隙的,是紧挨着一起的。

代码如下(示例):

<style>
	span { float: left; width: 200px; height: 100px; background-color: red; }
</style>
<body>
	<!--此时span标签可以显示出来并且在一行显示-->
	<span></span>
	<span></span>
</body>

三、约束浮动元素位置

为了约束浮动元素位置,网页布局一般采取:先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则。

四、浮动的注意点

  1. 浮动和标准流的父盒子搭配
    先用标准流的父元素排列上下位置,之后内部子元素采取浮动 排列左右位置。
  2. 一个元素浮动了,理论上其余的兄弟元素也要浮动。
    浮动的盒子指挥影响浮动盒子后面的标准流不会影响前面的标准流。

五、清除浮动

5.1 为什么要清除浮动

由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响。

  • 父级没高度
  • 子盒子浮动了
  • 影响下面布局

5.2 清除浮动的本质

  1. 清除浮动的本质是清除浮动元素造成的影响。
  2. 如果父盒子本身有高度,则不需要清除浮动。
  3. 清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级有了高度,就不会影响下面的标准流。

5.3 清除浮动的方法

额外标签法(隔墙法,W3C推荐)

额外标签法会在浮动元素末尾添加一个空的标签。

<div style= "clear.both">  </div></br>
  • 添加许多无意义的标签,结构化较差
  • 新的空标签必须使块级元素

父级添加overflow属性。

给父级添加overflow属性,将其属性值设置位hidden(无法显示溢出的部分)、auto或scroll。

父级添加 :after 伪元素。

没有增加额外标签结构更简单,需要照顾低版本浏览器。

代码如下(示例):

 <style>
	 .clearfix:after {
	 	content: "";
	 	display: block;
	 	height: 0;
	 	clear: both;
	 	visibility: hidden;
	 }
	 /* IE6、7 专有*/
	 .clearfix {
	 *zoom: 1;
	 }
 </style>

父级添加双伪元素(闭合浮动)。

同第四种给父元素添加

代码如下(示例):

 <style>
	 .clearfix:before, .clearfix:after {
	 	content: "";
	 	display: table;
	 }
	 .clearfix:after {
	 	clear: both;
	 }
	 /* IE6、7 专有*/
	 .clearfix {
	 *zoom: 1;
	 }
 </style>

浮动在css布局中有着举足轻重得作用,其中浮动中的注意点以及清除浮动理解起来不太容易,在使用中多加练习。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值