作者:WangMin

格言:努力做好自己喜欢的每一件事

什么是浮动 float?

标准流:盒子会各占整行位置。子盒子若是标准流,父盒子虽然没有高度,但是会撑开父盒子高度。

浮动:盒子浮了起来,不会占据原来的位置,若父盒子没有定义高度,则不会撑开父盒子,父盒 子高度为0。(浮动可以让多个块级元素在一行显示,且块与块之间没有空隙,但要注意给父盒子清除浮动,否则父盒子不会被撑开)。

div配合float浮动来做页面的布局,浮动最常用的地方就是用来做布局。只要一个标签设置了浮动float属性,就会变成块级标签。

浮动的两个特点:

  • 浮动的元素可以向左向右移动,直到它的外边框碰到父元素的外边框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的元素表现的就像浮动框不存在一样。

浮动float的三种取值:

   float:left      //向左浮动
float:right //向右浮动
float:none //默认值不浮动

为什么要清除浮动?

清除浮动主要是为了解决父级元素因为子级浮动引起的内部高度为0的问题。也就是说一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这时候就需要清除浮动,才能让元素内容正常显示。

<div class="box">
<div class="one"></div>
<div class="one"></div>
</div>
.box{
border:1px solid #ccc;
}
.box>.one{
width:200px;
height:200px;
background:#000;
float: left;
margin-right: 10px;
}

浮动产生样式效果截图:



本来两个黑色对象盒子是在灰色盒子内,因为对两个黑色盒子使用了float浮动,所以两个黑色盒子产生了浮动,导致灰色盒子不能撑开,这样浮动就产生了。

浮动产生的影响

1、背景不能显示

由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

2、边框不能撑开

如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示

由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

清除浮动的方法

1、额外标签法:给谁清除浮动,就在其后额外添加一个空白标签 。给空白标签自定义一个清除浮动的类,如下:

 .clear{
clear:both;
}

2、 父级添加overflow方法:可以通过触发BFC(块级格式化上下文)的方式,实现清楚浮动效果。别加错位置,是给父级元素加overflow属性(并不是所有的浮动都需要清除,谁影响布局,才清除谁。)如下:

overflow:hidden;

注意:元素内容过多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。

3、使用after伪元素清除浮动::after方式为额外标签法的升级版,好处是不用单独加标签了。这个也是给父亲添加 自定义类 .clearfix,代码如下:

.clearfix{
*zoom:1; //ie6清除浮动的方法
}
.clearfix:after{
content: "";
display: block;
height:0;
clear:both;
visibility: hidden;
}

4、使用before和after双伪元素清除浮动,这个也是给父亲添加 自定义类 .clearfix,代码如下:

.clearfix{
*zoom:1;
}
.clearfix:after{
clear:both;
}
.clearfix:after,.clearfix:before{
content: "";
display: table;
}

注意:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

5、对父级设置适合CSS高度(不推荐使用)

对父级设置适合高度样式清除浮动。就用上边的例子来说,给 '.box' 设置一定高度即可,一般设置高度需要能确定内容高度才能设置。这里 '.box' 内容高度是200px+上下边框为2px,这样具体父级高度为202px。

利用以上几种清除浮动的方法以后的效果如下:


以上仅是个人见解,若有不足之处欢迎在下方评论指出,那就先分享到这里!! 后续继续更新!!

CSS 浮动和清除浮动方法总结的更多相关文章

  1. [Web 前端] CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

    cp: https://blog.csdn.net/zengyonglan/article/details/53304487 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时 ...

  2. css 浮动和清除浮动

    在写页面布局的过程中,浮动是大家经常用的属性.在好多的排版布局中都是用的的浮动比如说下面这些地方都是应用到了浮动. 在我学习浮动的时候可是熬坏了脑筋,在这里我分享一下我对浮动这块知识的总结. 一.浮动 ...

  3. 【转】CSS中的浮动和清除浮动

    以下转自<CSS中的浮动和清除浮动,梳理一下!> 浮动到底是什么? 浮动核心就一句话:浮动元素会脱离文档流并向左/向右浮动,直到碰到父元素或者另一个浮动元素.请默念3次! 浮动最初设计的目 ...

  4. 浅谈css中浮动和清除浮动带来的影响

    有很多时候,我们都会用到浮动,而我们有时候对浮动只是一知半解,却不是太清楚它到底是怎么回事,不知道各位有没有和我一样的感觉,只知道用它,却不知道它到底是怎么回事,所以,在学习的过程中,就要把一个概念不 ...

  5. CSS浮动与清除浮动(overflow)例子

    在css中浮动与清除浮动功能是我们开发中常用到的一个功能了,下面小编来为各位分析关于CSS浮动与清除浮动(overflow)例子吧. float脱离文本流,可是为什么文字却会有环绕的效果,这点实在是神 ...

  6. 重温前端基础之-css浮动与清除浮动

    文档流的概念指什么?有哪种方式可以让元素脱离文档流? 文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行,并在每行中按从左到右的顺序排放元素.脱离文 ...

  7. css用clearfix清除浮动

    本文从http://www.studyofnet.com/news/196.html复制.   本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟着浮动框的高度增加而增加,在Fire ...

  8. CSS中如果实现元素浮动和清除浮动,看这篇文章就足够了

    浮动基本介绍 在标准文档流中元素分为2种,块级元素和行内元素,如果想让一些元素既要有块级元素的特点也同时保留行内元素特点,只能让这些元素脱离标准文档流即可. 浮动可以让元素脱离标准文档流,可以实现让多 ...

  9. CSS浮动和清除浮动

    1.浮动float div配合float浮动来做页面的布局,浮动最常用的地方就是用来做布局.只有一个标签设置了浮动float属性,就会变成块级标签. <!DOCTYPE html> < ...

  10. float浮动与清除浮动

    浮动: 浮动的框可以左右移动,直到它的边缘碰到包含框或另一个浮动框的边框为止.文档的普通流中的块框会当浮动框不存在一样.但会影响内联框(通常是文本)的排列. 属性值有:left,right,none; ...

随机推荐

  1. 基于Taro开发京东小程序小记

    一.小程序基础模型 这里要从微信小程序的历史说起,从前身到现在大概分为3个阶段: 阶段1: 微信网页需要用到app的原生能力,微信官方推出了js-sdk 阶段2: 解决移动端白屏问题,采用微信web资 ...

  2. openpyxl 统一表格样式

    # 统一表格样式 rows = ws.max_row columns = ws.max_column # print(rows) # print(columns) for row in range(1 ...

  3. [ansible]建立ssh互信

    创建密钥 # 创建基于rsa算法的密钥,也可以创建ed25519算法的密钥,性能比rsa高 # 一般直接回车即可 ssh-keygen -t rsa 少量建立互信 如果主机数不多的话,可以手动建立互信 ...

  4. 使用在线Excel时,有哪些方法可以引入计算函数?

    摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在日常生活和工作中,我们都会或多或少的使用Excel中的 ...

  5. Callback Function Essence

    Include Example Input: I am a. route execute finish. I am b. route execute finish. What is Callback ...

  6. 实现在Qt窗口中嵌套SDL

    实现在Qt窗口中嵌套SDL 在现代软件开发中,多媒体处理和交互性成为应用程序不可或缺的一部分.Qt作为一个强大的GUI框架,为开发者提供了丰富的图形.界面和事件处理工具.然而,有时候,我们可能需要更多 ...

  7. Zimbra禁止接收带有加密的文件邮件 提醒病毒(Heuristics.Encrypted.PDF)

    最近碰到一个国际性大客户,一定要发送经过加密的文件,因为是合约相关的文件,对方公司有这方面要求.但是Zimbra默认是禁止接收加密的文件 - 'Block encrypted archives',这样 ...

  8. MySQL InnoDB 是怎么使用 B+ 树存数据的?

    这里限定 MySQL InnoDB 存储引擎来进行阐述,避免不必要的阅读歧义. 首先通过一篇文章简要了解下 B 树的相关知识:你好,我是B树 . B+ 树是在 B 树基础上的变种,主要区别包括: 1. ...

  9. CodeForces-1324D-Pair-of-Topics

    题意 对于两个长度为\(n\)的数组\(a[]\)和\(b[]\),找到有多少对\(i\)和\(j\)\((i<j)\),满足\(a_i+a_j>b_i+b_j\) 分析 首先发现如果\( ...

  10. 路由器与交换机:Access/Trunk,Wan/Lan

    转载请注明出处: 1.交换机与路由器 交换机与路由器的特点: 交换机(Switch): 用于在局域网中传输数据帧 基于MAC地址进行转发和过滤 工作在数据链路层(第二层) 具有多个端口,可以连接多台计 ...