CSS清除浮动4种方法及详细解析

CSS——CSS浮动与清除浮动 文章目录浮动普通流(normal flow)浮动(float)什么是浮动?浮动详细内幕特性float 浮 漏 特现在就可以用float实现一些基本页面布局了链接清除浮动为什么要清除浮动清除浮动本质※ 清除浮动的方法1.额外标签法2.父级添加overflow属性方法3.使用after伪元素清除浮动4.使用before和after双伪元素清除浮动 浮动 普通流(normal flow) 这个单词很多人翻译为 文档流 , 字面翻译 普通流 或者标准流都可以。 前面我们说过,网页布局的核心,就是用CSS来摆放盒子 阅读详情

问题所在:子盒子浮动导致父盒子的内高度为0,父级盒子不能被撑开,发生高度坍塌的情况。如下图所示:

答案:

1. 给父级元素设置合适的高度,手动撑开

2. 给父元素添加样式 overflow:hidden/auto (这个属性相当于触发BFC,让父级紧贴内容,包括使用了浮动的盒子)

3. 在浮动元素结尾增加空的div盒子,添加样式 clear:both

4. 给父元素添加伪类 :after 和 zoom (最推荐)

 

详细解析:

1. 给父级元素设置合适的高度,手动撑开

只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题

 

2. 给父元素添加样式 overflow:hidden/auto (这个属性相当于触发BFC,让父级紧贴内容,包括使用了浮动的盒子)

在浮动元素的父元素上设置了 overflow 的值为 hidden 或 auto (超过的部分不显示),可以闭合浮动。

overflow的属性:

visible默认值。内容不会被修剪,会呈现在元素框之外。
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit规定应该从父元素继承 overflow 属性的值。

 

3. 在浮动元素结尾增加空的div盒子,添加样式 clear:both

clear 有 几个属性值,分别为

  • both         在元素左右两侧不允许出现浮动元素
  • left           在元素左侧不允许出现浮动元素
  • right         在元素右侧不允许出现浮动元素
  • none        不清除浮动
  • inherit      继承父元素的值

 

4. 给父元素添加伪类 :after 和 zoom (最推荐)

这种方式也是使用clear: both;的方式达到效果,只是变相的使用了伪类after,使得页面结构更简洁。

//在类名为clearfix的元素后面加入内容

.clearfix:after{
  display: block;
  clear: both;
  content: "";
  height: 0;
  line-height: 0;
  visibility: hidden;
}

.clearfix{
  zoom: 1;  //因为IE6不支持:after伪类
}

 

拓展:

为什么会出现浮动?

由于浮动元素不在文档流中,所以文档流的块框表现得就像浮动框不存在一样。浮动元素会漂浮在文档流的块框上。

浮动带来的问题:

  1. 父元素的高度无法被撑开,影响与父元素同级的元素

  2. 与浮动元素同级的非浮动元素(内联元素)会跟随其后

  3. 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构。

Anaconda下安装LabelImg 阅读详情

相关推荐

基于FPGA低频方波测量-频率与占空比

基于FPGA低频方波测量-频率与占空比

DRAXY的博客 6733

CSS清除float浮动_div+css简单了解

原文: http://www.sendong.com/news1639.html 一、浮动产生原因 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了。 浮动产生样式效果截图 本来两个黑色对象盒子是在红色盒子内,因为对两个黑色盒子使用了float浮动,所以两个黑色盒子

一地鸡毛 761

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

新年了,来个大的,写了好几天,将近9000字,希望对大家有所帮助

weixin_47692652的博客 3121

解决浮动后的高度塌陷问题的四种方式

解决高度塌陷问题 首先来介绍一下高度塌陷问题 1、在浮动布局中,父元素的高度默认是被子元素撑开的。 2、当子元素浮动后,其会完全脱离文档流,子元素从文档流中脱离,将会无法撑开父元素的高度,导致父元素的高度丢失,高度丢失后,其下的元素会自动上移,导致页面混乱。 解决高度塌陷的四种方法: BFC clear 使用伪类after clearfix 一、BFC全称 (Block Formatting Context) 块级格式化环境 元素开启BFC的特点: 1、开启BFC的元素不会被浮动元素所覆盖 2、开

qq_52939119的博客 4893

Keil C51开发必看:详解data/xdata/bdata内存分配陷阱与避坑指南

本文深入解析Keil C51开发中的data/xdata/bdata内存分配陷阱,提供针对51芯片的高效避坑指南。通过真实案例揭示Keil编译器的隐藏规则,分享内存优化策略和调试技巧,帮助开发者解决data溢出、xdata访问异常等典型问题,提升嵌入式开发效率。

v6b7n8m9q0的博客 1072

Win10系统下Protel 99 SE元件库导入报错?3步搞定File is not recognized问题

本文详细介绍了在Win10系统下解决Protel 99 SE元件库导入报错'File is not recognized'的3步终极方案。通过手动修改配置文件、使用专用工具和优化系统兼容性设置,帮助用户快速解决这一经典PCB设计软件的兼容性问题,提升工作效率。

m3n5b7v8c9x的博客 797

为什么会出现浮动?什么时候需要清除浮动?清除浮动的方式有哪些?

浮动元素碰到包含它的边框或者浮动元素的边框停留。由于浮动元素不在文档流中,所以文档流的块框表现得就像浮动框不存在一样。浮动元素会漂浮再文档流得块框上。 浮动带来的问题: 父元素的高度无法被撑开,影响与父元素同级的元素 与浮动元素同级的非浮动元素(内联元素)会跟随其后 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构 清除浮动的方式: (1)、父级div定义 height 原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。 优点:简单、代码少、容

weixin_43912081的博客 1137

Hierarchical Flow Partition(Top-down&&Bottom-up)

hierarchy flow是将设计切分成多个block,分别处理单个block,然后完成后,将它们进行拼接以完成最终的chip。一般划分为三个阶段:chip planning;physical budget就是pin assignmenthierarchy flow实现的方法有两种,一种是top-down,另一种是bottom-up,无论是哪种,都是都要通过flatten的方法分别全局范围进行优化实现。

qq_39493558的博客 3073

请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式?

为什么出现浮动?浮动float最开始出现的意义是为了让文字环绕图片而已,但人们发现,如果想要三个块级元素并排显示,都给它们加个float来得会比较方便。什么时候清除浮动? 如果想要实现三个块级元素并排显示,期望效果如下图所示: 给三个块级元素都加上float属性后,页面效果如下图所示: 问题出现了,父元素高度塌陷了一目了然:如果我们给上面的三个绿颜色的方块设置display:inline-

sjinsa的博客 1万+

顶刊级科研绘图技巧

顶刊级科研绘图技巧

2401_89571885的博客 1159

网表导入virtuoso后发现pg pin忘记connect_pg_net/globalNetConnect怎么办?

数模混合项目中经常需要一些需要到virtuoso去连接的线,比如IO上的pg和一些信号线,除了在pr工作中设置skip route之外还需要做好net的赋值,告诉工具虽然我没在物理上有连接,但是实际上应该连什么net,这部分提现在网表里。在Default Net Name中也填写net name,因为这个net需要做global操作,即在顶层定义这个net,所以需要在net name后加个!打开schematic,删除指定cell pin所接net的label。

m0_61544122的博客 970

为什么会出现浮动?为什么要清除浮动?清除浮动的几种方法?

为什么会出现浮动?为什么要清除浮动?清除浮动的几种方法?

weixin_61738415的博客 393

[网络安全自学篇] 七十三.WannaCry勒索病毒复现及分析(四)蠕虫传播机制全网源码详细解读

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了逆向分析OllyDbg动态调试工具的基本用法,包括界面介绍、常用快捷键和TraceMe案例分析。这篇文章将继续详细讲解WannaCry蠕虫的传播机制,带领大家详细阅读源代码,分享WannaCry勒索病毒是如何传播感染的。作者分析该病毒一个月,一方面觉得自己技术菜,另一方面深知系统安全需要坚持,继续加油。希望文章对您有所帮助~

杨秀璋的专栏 1万+

CSS篇之2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ? 一.什么时候需要清除浮动?我们对元素进行了浮动(float)时,我们的元素就会脱离文档流,像一只小船一样漂流在文档之上。 在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。 float主要流行与页面布局,然后没有使用后没有清除浮动,就会后患无穷。知乎上截图: 分析HTML代码结构:<div

zengyonglan的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CSS清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

CSS清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法  浮动(float),一个我们即爱又恨的属性。爱,因为通过浮动,我们能很方便地布局; 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器)。也许很多人都有这样的疑问,浮动从何而来?我们为何要清除浮动?清除浮动的原理是什么?本文将一步一步地深入剖析其中的奥秘,让浮动使用

sinat_36533893的博客 7081

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CSS浮动与清除浮动

今天是第一次写博客,已经迫不及待地想把这周在逆战班学习的内容分享一下,这是我对css浮动与清除浮动的理解,希望可以帮助你。 CSS浮动与清除浮动( 本文以div元素布局为例。) 前言:由于CSS内容比较多,只能有针对性的讲解。 如果读者理解CSS盒子模型,但对于浮动不理解,那么这篇文章可以帮助你。 首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是文档流,文档流是文档中可显示对象...

qq_39406353的博客 3921

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

CSS 清除浮动

今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。 下面我就讲3种常用清除浮动的方法,够用了。 文章目录1、在浮动元素后面加一个空的div,并为它清除浮动2、利用BFC特性清除浮动3、使用:after伪元素,给浮动元素的父元素清除浮动 1、在浮动元素后面加一个空的div,并为它清除浮动 html代码: <div class="wrap"> <div cla

木木木森林 1845

CSS的浮动及清除浮动的5种方法

浮动是布局的时用到的一种技术,能够方便我们进行布局。1、浮动的设置:css属性float:left/right/none 左浮动/右浮动/不浮动(默认)2、浮动的原理:使...

web前端开发 5050

CSS :浮动与清除浮动

CSS :浮动与清除浮动1.浮动1.css 布局的三种机制2.为什么需要浮动3.什么是浮动1.浮动口诀之浮2.浮动口诀之漏3.浮动口诀之特4.浮动小结5.浮动(float)的应用(重要)6.浮动(float)的扩展2.清除浮动1.为什么要清除浮动2.清除浮动的本质3.清除浮动的方法1.**额外标签法(隔墙法)**2.父级添加overflow属性方法3.使用after伪元素清除浮动4.使用双伪元素清除浮动4.清除浮动总结 1.浮动 1.css 布局的三种机制 网页布局的核心——就是用 CSS 来摆放盒子。

EX1332914934的博客 9014

CSS浮动(浮动布局、浮动清除、浮动的特性)

CSS浮动(浮动布局、浮动清除、浮动的特性)

J3259392566的博客 1525

CSS——清除浮动所有方法总结

为什么要清除浮动? 一开始css的浮动,其本质是用来做一些文字混排效果的,但是后来被我们拿来做布局用,就出现了很多问题。 清除浮动的本质:为解决父级元素因为子级浮动引起高度为0的问题 我们很多时候不方便给父盒子的高度,因为我们不清除有多少子盒子,有多少内容。经常的做法会让内容撑开父盒子的高度。 但是如果父盒子中有子盒子浮动了之后,就会影响到后面的盒子,因为浮动元素脱离了标准流。会把后面还在标准流的盒子覆盖,解决这个问题的方法就要清除浮动 如何清除浮动? 清除浮动其实叫做 闭合浮动 更合适,因为是把浮动的

z17853913976的博客 1942

前端CSS:CSS清除浮动

在CSS布局中,浮动是一种常用的技术,用于创建复杂且灵活的布局。然而,浮动元素会导致其父元素和其他元素布局上的问题,这些问题通常需要通过清除浮动来解决。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。接下来,您可以尝试在自己的项目中实践这些技巧,以提高网页布局的质量和性能。一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,时,该元素会创建一个新的块级格式化上下文,从而自动清除内部的浮动元素。专栏系列(点击解锁)

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1491

CSS为何清除浮动以及清除浮动方法总结

CSS为何清除浮动以及清除浮动方法总结 一,浮动布局的注意点 浮动和标准流的父盒子搭配:先用标准流的父元素排列上下位置,之后再用内部子元素采取浮动排列左右位置 一个元素浮动了,理论上其余的兄弟元素也要浮动:浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流 二,为什么需要清除浮动? 由于父级盒子在很多的情况下不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子的高度为0,就会影响下面的标准流盒子 由于浮动元素不再占有原文档流的位置,所以会对后面的元素排版产生影响 三,清除浮动的本质 1

qq_59079803的博客 2171

Css清除浮动常用方法

1、为什么要浮动 首先我们要知道为什么要给元素设置浮动。HTML中标签分为:块级标签,行内标签,行内块标签。其中块级标签和行内块标签以及行内标签的排列方式是不一样的,块级标签是独占一行的,而行内块元素和行内元素是在同一行内排列的,只有当排满或者容不下元素时才会另起一行显示。因此想要块级元素在同一行内显示,或者想要设置元素浮动对齐的方式就需要将元素浮动起来。css中float属性用来设置元素的浮动,...

LUOandHUANG的博客 4064

css清除浮动的几种方式

CSS 清除浮动的几种常用方法

潮汐未见潮落的博客 1万+

6.2 CSS清除浮动的方法

与 Flexbox 一样,Grid 布局提供了一种更为现代和强大的方法来处理布局,它可以自动处理子元素的位置,包括那些可能被设置为浮动的元素。在CSS布局中,浮动元素可能会导致父元素的高度塌陷,因为浮动元素不在文档流中,父元素无法正确计算其高度。布局,即弹性布局,是CSS3引入的一种更加高效和强大的布局模式。这样,即使父元素内部有浮动元素,父元素也能够正确地包裹所有子元素,包括非浮动的子元素。假设你有一个包含两个浮动元素的容器,你希望容器能够正确显示这两个元素,即使它们的高度超出了容器的初始高度。

Python老吕的博客 997
上一篇: sass样式嵌套的学习与基本写法
下一篇: CSS选择器优先级及解析
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值