文章目录

  • 为什么要清除浮动
  • 清除浮动本质
    • 什么是高度塌陷?
    • 为什么会脱标?
  • 一、清除浮动的语法
  • 二、清除浮动的方法
    • 1.额外标签法
    • 2.父级添加 overflow 属性
    • 3.父级添加 after 伪元素
    • 4.父级添加双伪元素

为什么要清除浮动

    由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子(由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响)。

清除浮动本质

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

清除浮动的策略:闭合浮动(只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子)

什么是高度塌陷?

    父元素高度自适应,子元素添加浮动后,造成父元素高度为0,称为高度塌陷问题。

为什么会脱标?

    因为所有元素本都是在标准流里布局,即块元素独占一行、行内元素从左到右排列;被添加浮动效果后,不再属于标准流且会脱离标准流(脱标),此元素的位置将不再保留。此时,本被布局在下面的块元素会往上移动,排在右边的行内元素会向左边移动,导致整个布局发生改变。


一、清除浮动的语法

书写语法:

选择器 { clear:属性值;}

属性值:

left   不允许左侧有浮动元素(清除左侧浮动的影响)
right  不允许右侧有浮动元素(清除右侧浮动的影响)
both   同时清除左右两侧的影响

二、清除浮动的方法

1.额外标签法

  • 额外标签法也称为隔墙法,是W3C推荐的做法
  • 额外标签法 就是在最后一个浮动元素末尾添加一个空的额外标签,并添加清除浮动样式。

代码如下(示例):

<div style="clear:both"></div>//或者其他标签(如<br/>等)

注意:要求这个新的标签必须是块级元素

优点 通俗易懂,书写方便
缺点 添加许多无意义的标签,结构化较差

2.父级添加 overflow 属性

  • 将其属性值设置为 hidden、auto 或 scroll

代码如下(示例):

 overflow:hidden;
优点 代码简洁
缺点 无法显示溢出部分

3.父级添加 after 伪元素

  • :after 是额外标签法的升级版,也是给父元素添加
  • 代码写在css里,后面有要清除浮动的话,调用这个代码就可以了

代码如下(示例):

.clearfix:after {content:"";display:block;height:0;clear:both;visibility:hidden;
}
.clearfix {//IE6、7 专有*zoom:1;
}
优点 没有增加标签,结构更简单
缺点 照顾低版本浏览器
代表网站 百度、淘宝网、网易等

4.父级添加双伪元素

  • :after 和 :before 是额外标签法的升级版,也是给父元素添加
  • 代码写在css里,后面有要清除浮动的话,调用这个代码就可以了

代码如下(示例):

.clearfix:before,
.clearfix:after {content:"";display:table;
}
.clearfix:after{clear:both;
}
.clearfix {//IE6、7 专有*zoom:1;
}
优点 代码更简洁
缺点 照顾低版本浏览器
代表网站 小米、腾讯等

在 HTML 中 清除浮动四种的方法相关推荐

  1. BFC以及清除浮动四种方式

    什么是BFC 先了解常见的三种定位方案: bfc是普通流: 可以将bfc看作是一个属性 2.如何触发bfc 1.根元素() 2.浮动元素(元素的float不是none) 3.绝对定位元素(元素的pos ...

  2. Python 中浅拷贝的四种实现方法

    方式一:使用切片 [:] 列表 # 浅拷贝 [:] old_list = [1, 2, [3, 4]] new_list = old_list[:]old_list.append(5) old_lis ...

  3. CSS中清除浮动的两种方式

    在CSS中,父元素中的子元素如果使用了float,会导致父元素塌陷,高度为0. 对于这种情况,常见的解决方式有两种. 一.增加新的div,应用clear:both属性 html: 1 <div ...

  4. html中清除浮动的几种方式,清除浮动的几种方法-关于CSS清除浮动的几种方法

    CSS清除浮动的3种方法,参考: 方法1: #test{clear:both;} #test为浮动元素的下一个兄弟元素 方法2: #test{display:block;zoom:1;overflow ...

  5. Android中Activity的四种启动方式

    谈到Activity的启动方式必须要说的是数据结构中的栈.栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶.需要读取数据的时候就需要从顶部开 ...

  6. Java中创建对象的四种方式

    为什么80%的码农都做不了架构师?>>>    Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法.    (2) 运用反射手段,调用java.l ...

  7. tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例

    本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...

  8. 【温故知新】——原生js中常用的四种循环方式

    一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出"欢迎下次光临" 在网页中弹出框输入1   网页输 ...

  9. pytorch梯度下降函数_Pytorch中常用的四种优化器SGD、Momentum、RMSProp、Adam

    来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-16 引言     很多人在使用pytorch的时候都会遇到优化器选择的问题,今天就给大家介绍对比 ...

最新文章

  1. bash变量和逻辑运算
  2. UVA11174村民排队问题
  3. 数据结构-排序-分配类排序-知识点总结归纳3
  4. python中os模块_Python的武器库11:os模块
  5. 信息学奥赛一本通(2063:【例1.4】牛吃牧草)
  6. 《编程之美》笔记(一)
  7. 万稞pw80线切割编程软件_现在模具设计,编程行业,还是很吃香的
  8. python如何确定拐点_如何在嘈杂的曲线中找到拐点?
  9. 【UVA No. 12676】转换哈夫曼编码 Inverting Huffman
  10. 01_DM 主备集群体验故障状态切换
  11. matlab图无线型,如何使用MATLAB进行移动无线信道模型的建模资料概述
  12. kali永久获取root权限
  13. 多媒体开发之视频格式---1080p逐行和1080i隔行
  14. GDB 用法之查看内存
  15. 2016年安徽省程序设计竞赛 水题C,D,E 题解
  16. Spring学习手记(二)——控制台调度任务
  17. PS CS4 序列号永久使用
  18. PHP根据身份证号码找出出生年月和判断男女
  19. 活动预告:如何配置数字资产应对大放水和经济不确定性
  20. 麦克风阵列声源定位 SRP-PHAT

热门文章

  1. cad指北针lisp_AutoCAD_Map_3D__2010_教程.pdf
  2. EFI系统分区如何删除
  3. 最全的浏览器User-Agent
  4. C++虚函数、纯虚函数、虚析构、纯虚析构、动态绑定和抽象类详解。
  5. iOS 如何优雅的写一个验证码输入框
  6. VS Code 知乎 Live,参与人数突破 1000 人!
  7. NLP-D9-第一场大数据比赛D1知识蒸馏翻译论文CATTI备考-第一套综合
  8. PyQt5之QGraphics 008 QGraphicsItem四连杆机构动画
  9. (4)基于UR5的DH参数建模实例
  10. 【Runge-Kutta】龙格-库塔法求解微分方程matlab仿真