元素浮动定义

float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。

如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。

注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。


why 子元素浮动 会导致父元素 高度塌陷?

这是因为内部的元素设置float:left || right后,就丢失了clear:both和display:block(持怀疑态度)的样式,所以外部的父容器不会被撑开。


举个 :

子元素未设置浮动,父元素自动被撑开

<body><div class="father"><div class="son"></div></div></body>
<style>.father {width: 400px;border: 1px solid blue;}.son {width: 200px;height: 200px;border: 1px solid red;background-color: yellow;}
</style>

子元素设置浮动,父元素高度塌陷

<body><div class="father"><div class="son"></div></div>
</body>
<style>.father {width: 400px;border: 1px solid blue;}.son {width: 200px;height: 200px;border: 1px solid red;background-color: yellow;float: left;}
</style>


闭合浮动的常见解决方案

最终,我们要的效果是要跟没设置浮动之前的效果一样,让父元素高度自适应:

  • 在浮动元素之后添加清除浮动的子元素:
<div class="father"><div class="son"></div><div class="clearFloat"></div>
</div>
<style>
.father {width: 400px;border: 1px solid blue;
}
.son {width: 200px;height: 200px;border: 1px solid red;background-color: yellow;float: left;
}
.clearFloat {width: 100%;height: 0;clear: both;
}
</style>

父元素设置 overflow: hidden

<div class="father"><div class="son"></div>
</div>
<style>
.father {width: 400px;border: 1px solid blue;overflow: hidden;
}
.son {width: 200px;height: 200px;border: 1px solid red;background-color: yellow;float: left;
}
</style>

是不是很神奇!因为子元素的浮动,会导致父元素误认为content高度为0(即蓝色边框为一条线),所以父元素设成overflow:hidden溢出隐藏的话,直觉上应该子元素由于溢出导致不显示才对。但真实效果是:父元素设成overflow:hidden溢出隐藏后,父元素高度居然自适应了!这是怎么回事呢?是因为 BFC(Block Formatting Context),感兴趣的童鞋,点击链接了解一下哈...

用 :after 伪元素,思路是用:after元素在div后面插入一个隐藏文本”.”,隐藏文本用clear来实现闭合浮动

.father:after {clear: both;content: ".";   //任意文本如“dfgdfg”display: block;height: 0;      //高度为0且hidden让该文本彻底隐藏visibility: hidden;
}

更多大型互联网web前端实战操作,在线解析,学习指导,学习资源,点:【WEB前端资源】

html自适应_web前端入门到实战:HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法...相关推荐

  1. css 高度塌陷_web前端入门到实战:CSS 负边距的行为表现

    CSS 中的负边距 margin 是可以设置为负值的,这会帮你实现靠近顶部/左边相邻元素的效果,或者实现靠近底部/右边相邻元素的效果. 先介绍下我们的测试元素:一个简单的包含三个段落的容器元素.注意, ...

  2. display none 隐藏后怎么显示_web前端入门到实战:元素显示隐藏的9种思路

    我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴 ...

  3. html设置样式不继承_web前端入门到实战:css的核心原理分为优先级原则与继承原则两大部分...

    css原理:1.优先原则=>后解析的内容会覆盖之前解析的内容(所谓解析就是读取的css样式)2.继承原则=>嵌套里面的标签拥有外部标签的某些样式,子元素可以继承父元素的属性 1>优先 ...

  4. 双飞翼布局内容不换行_web前端入门到实战:圣杯布局和双飞翼布局

    稍微了解前端的人都知道,圣杯布局和双飞翼布局是前端面试时必问的问题,因为它既能体现你懂HTML结构又能体现出你对DIV+CSS布局的掌握,毕竟我们学习CSS主要就是为了更好地布局带来最好的用户体验嘛~ ...

  5. css 百分比 怎么固定正方形_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%

    对于绘图和印刷而言,"单位"相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px.em.rem-等),这篇文章将整理这些常用的C ...

  6. rem 前端字体_web前端入门到实战:一次搞懂CSS字体单位:px、em、rem和%

    对于绘图和印刷而言,"单位"相当重要,然而在网页排版里,单位也是同样具有重要性,在CSS3普及以来,更支持了一些方便好用的单位(px.em.rem-等),这篇文章将整理这些常用的C ...

  7. webapp入门到实战_web前端入门到实战:前端高手在CSS 开发效率的必备片段

    这篇文章会记录我们平时常用到的 CSS 片段,使用这些 CSS 可以帮助我们解决许多实际项目问题中遇到的,墙裂建议点赞收藏再看,方便日后查找 清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们 ...

  8. css 横线_web前端入门到实战:CSS 搞怪的 text-decoration

    一个莫名其妙的属性:text-decoration,这个属性,其实就只是用来把一段文字加上上横线.删除线或底线的属性罢了,通常会用在移除超链接的底线.或一些特殊强调的效果里头,但是这么容易的属性,为什 ...

  9. android recyclerview item自适应高度_web前端入门到实战:css让一个盒子的高度自适应屏幕剩余的部分...

    项目中,移动端要自适应,由于有时候数据不够,所以导致了有的区域空白 要求:没有数据的时候能够充满屏幕,数据超出屏幕就出现滚动条 做法 1-让容器高度充满这个屏幕 在容器内容很少的情况下,要想让这个容器 ...

最新文章

  1. 一篇比较好的介绍(两种线程模式)
  2. javascript onsubmit返回false仍然能提交_JavaScript对象-Get和Put
  3. linux查找文件限制时间,Linux查找命令find与文件三种时间
  4. Android Sqlite 数据初始化
  5. java ee编译器_Java EE 8 MVC:控制器的详细介绍
  6. 腾讯 深圳 25928-PHP开发工程师(深圳)
  7. 多元线性回归matlab代码_医学统计|多元线性回归分析
  8. 前端进阶试题-CSS篇
  9. cpu核心电压:不一定是1.55伏特 : 全体到齐!200 mhz fsb的p4处理器与i875p双通道ddr400芯片组...
  10. 迷你linux主机,ECS推出两款迷你主机新品:支持Linux系统,可输出4K视频
  11. 网络工程师考试试题及答案+SUV
  12. Scala下载及安装(Windows)以及Idea中Scala项目的创建
  13. 解决数据库左右连接,查询不出为空的解决方案
  14. 码栈——让一切变得自动化
  15. python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)
  16. 淮北晨刊报道我校学生募捐送温暖活动
  17. 对openmv色块查找的思考笔记
  18. 千万不要尝试波段操作
  19. MySql服务器忘记密码? 这几步轻松重置密码。
  20. 串口相关的文件操作和linux

热门文章

  1. Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)
  2. Sublime Test3 添加一键格式化XML文件插件
  3. 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)V2.0_dev
  4. cmd下pip安装mysql_Windows下使用pip安装mysql-python
  5. 修改文件 华为交换机_华为交换机系统文件管理配置命令大全(二)
  6. php 二维数组排序函数,php自定义函数实现二维数组排序功能
  7. python 数据流中的移动平均值_剑指Offer-41-数据流中的中位数
  8. java数据段 静态区_回顾一下基础,关于栈与堆,常量池,静态区
  9. mysql 日期间隔_mysql比较两个日期间隔
  10. mysql抖动可能的原因,12 | 为什么我的MySQL会“抖”一下?