清理浮动(闭合浮动)

因为将子元素都设置为浮动后,父元素内部就好像没有东西了,被掏空了,无法被子元素撑起来。所以就会出现塌陷的情况。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        .first, .second {
  float:left;
  background:red;
  width:100px;
  height:50px;
  margin:10px;
}
#wrap {
  border:10px solid black;
  width: 300px;
}
    </style>
</head>
<body>
    <div id="wrap">
    <div class="first"></div>
    <div class="second"></div>
</div>
</body>
</html>

所以就需要清理浮动。

  • 在元素最后再添加一个div空标签或br标签。在写clear:both||left||right||none。表示哪些边框不挨着浮动框。
  • 有个叫bfc的概念(block formatting content)用这个就是为了让那个因为包含很多浮动子元素而产生高度塌陷的父元素不再塌陷。把子元素包含在内。bfc的特性:
      BFC会阻止垂直外边距(margin-top、margin-bottom)折叠,BFC不会重叠浮动元素,BFC可以包含浮动
    如何形成bfc:
    float:none 以外的值;
    position:absolute||fixed;
    overflow:hidden||auto;
    display:inline-block||table-caption||table-cell;
    但每种都会有各自相关的新问题(末尾的文章有详细的说明)。
  • 使用:after伪元素来处理。

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

    .clearfix { *zoom:1; }由于IE6-7不支持:after,使用 zoom:1触发 hasLayout。

    <div id="wrap" class="clearfix">  //这里在父元素写了一个class:clearfix。然后就解决问题了。
            <div class="first"></div>
            <div class="second"></div>
        </div>
    
    .clearfix:after{
        content:".";
        display:block;
        height:0;
        visibility:hidden;
        clear:left;
    }
    #wrap {
      border:10px solid black;
      width:320px;
    }

    这个好像是比较好的一种方法了。

这是昨天看的关于闭合浮动的文章。那些年我们一起清除过的浮动

时间: 2024-10-14 16:03:37

清理浮动(闭合浮动)的相关文章

css清除&amp;闭合浮动

那些年我们一起清除过的浮动   原文地址:http://www.iyunlu.com/view/css-xhtml/55.html 浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器).也许很多人都有这样的疑问,浮动从何而来?我们为何要清除浮动?清除浮动的原理是什么?本文将一步一步地深入剖析其中的奥秘,让浮动使用起来更加得心应手. 一.清除浮动 还是

闭合浮动

当我们利用CSS中的float来进行浮动定位时,浮动的元素会脱离原来的文档流.容器的高度不能自动变化以适应其中内容的高度的变化,我们希望父容器能包含子容器,因此解决方法为闭合浮动. 如果没有闭合浮动则会出现以下情况: 一: 如果前面的元素浮动了,后面的元素可能会受影响,解决这个问题可以设置后面的元素也浮动 float:left: 二: 如果两个元素都浮动了,但原来包裹这两个元素的父元素高度就会变为0 闭合浮动的四种方法: 法一:为父元素添加overflow:hidden 法二:为父元素添加dis

清除浮动与浮动闭合

浮动(float)在网页布局中随处可见,通过浮动,我们能很方便地布局,但浮动之后遗留下来太多的问题需要解决,特别是IE6-7 浮动从何而来?我们为何要清除浮动?清除浮动的原理是什么?下面将一步一步地深入剖析其中的奥秘,让浮动使用起来更加得心应手. 一.清除浮动还是闭合浮动 (Enclosing float or Clearing float)? 很多人都已经习惯称之为清除浮动,我也一直这么叫着,但是确切地来说是不准确的.我们应该用严谨的态度来对待代码,也能更好地帮助我们理解开头的三个问题. 1)

论述浮动的原理和浮动带来的影响,并列举常见的闭合浮动的方法。

1.浮动的原理浮动是让某元素脱离标准流,漂浮在标准流之上的一种布局方式.任何元素被设置为浮动元素后,就表明它是块级元素,拥有宽高属性.2.浮动带来的影响1)影响它的兄弟元素的位置一个元素设置了浮动样式后,会影响它的兄弟元素,至于如何影响,要看它的兄弟元素是块级元素还是内联元素.如果兄弟元素是块级元素,会无视这个浮动元素,即兄弟元素和浮动元素共处同行,浮动元素会覆盖兄弟元素.除非这些 div 设置了宽度,并且父元素的宽度不足以包含它们,这样兄弟元素才会被强制换行:如果兄弟元素是内联元素,则会尽可能

解读浮动闭合最佳方案:clearfix

之前给大家介绍两种浮动闭合的办法CSS清除浮动 万能float闭合,得知很多同学都在使用下面的骨灰级解决办法: .clear{clear:both;height:0;overflow:hidden;} 上述办法是在需要清除浮动的地方加个div.clear或者br.clear,我们知道这样能解决基本清浮动问题. 但是这种方法的最大缺陷就是改变了html结构,虽然只是加个div. 最优浮动闭合方案: .clearfix:after{content:".";display:block;hei

CSS 教程 - 闭合浮动元素

按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列. 因此当其高度超出包含容器时,一般父容器不会自动伸长以闭合浮动元素. 但是有时我们却需要这种自动闭合行为,具体如何处理呢? 有一种做法就是在父容器内再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器.这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签,所以我个人不大喜欢. 后来又有了一种新的方式,使用 :after 伪类动态的嵌入一个

关于清除浮动与闭合浮动

在给HTML添加样式的构成中,css是必不可少的的,然而css中有一些功能的实现可以通过不同的方法实现,通过效果查看好像并没有什么不同,那它们之间到底有什么本质区别呢,又有哪些概念被我们无意的忽略或者无视了呢,突然想总结总结这一类的问题,本篇日志是本人对于"清除浮动"的一些想法,欢迎看到此篇朋友们加以改正指导. 为什么要清楚浮动 在布局的时候我们经常希望某些内容能够水平排布,水平排布后,由于内部内容不确定,高度不能简单的给一个定值.而如果不给高度,子元素又都浮动了,父盒子就会因为没有子

css浮动布局,浮动原理,清除(闭合)浮动方法

css浮动 1.什么是浮动:在我们布局的时用到的一种技术,能够方便我们进行布局,通过让元素浮动,我们可以使元素在水平上左右移动,再通过margin属性调整位置 2.浮动的原理:使当前元素脱离普通流,相当于浮动起来一样,浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘 3.浮动的生成:使用css属性float:left/right/none 左浮动/右浮动/不浮动(默认) 4.浮动的影响: 不会影响未浮动的块级元素布局,但是会影响内联元素的布局 浮动后的元素可以设置宽度和高度,

浮动 清除浮动(造成的影响)

一.浮动 CSS浮动    CSS float浮动的深入研究.详解及拓展(一)    CSS浮动属性Float详解 块级元素独占一行 块级元素,在页面中独占一行,自上而下排列,也就是传说中的流. 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为div元素是独占一行的. 注意,以上这些理论,是指标准流中的div.无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”. 浮动 浮动:浮动的框可以左右移动,直至它的外边缘遇到包