zoukankan      html  css  js  c++  java
  • overflow:hidden为何能清除浮动?

     设置float之后,比如在一个容器里,一个图片后面有一段文字,图片设置了float。会有3个变化:

    1、被float的元素会脱离标准文档流。(如果float的是inline element,会变成float-box)shift to the left or right,到包含他的盒子边缘或者其他float元素边缘。

    2、段落会上移。

    3、段落内容会shorten来适应float的宽度(这个宽度是包括图片的margin的,如果float宽度很大,导致没有空间容纳一个单词,就下移)。 

    清除浮动一般有2种方法:clear: both; overflow: hidden。

    通过clear: both来清除浮动,会有一个问题:就是如果这个容器没有设置高度,子块只有float元素,容器高度会坍陷。这个时候可以设置overflow: hidden来解决。

    可是为什么overflow能解决这个问题呢?

    overflow这个属性本来是隐藏超出父块之外的子块。在隐藏的时候,需要计算全部高度,这个时候会把float元素的高度算上。顺带达成了清理浮动的效果。

  • 相关阅读:
    linux 免密登录
    mysql 重置从库
    elasticsearch原理及简介
    多线程编程--心得
    为什么我们做分布式使用Redis?
    JAVA-JVM调优
    JAVA-JVM调优标志
    Spirng-Mvc之Servlet篇
    Agent Job代理 执行SSIS Package
    Python之爬虫的理解
  • 原文地址:https://www.cnblogs.com/guojunru/p/5370207.html
Copyright © 2011-2022 走看看