V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
83f420984
V2EX  ›  CSS

关于清除浮问题问攻城师们

  •  
  •   83f420984 · Jul 17, 2013 via Android · 4971 views
    This topic created in 4679 days ago, the information mentioned may be changed or developed.
    什么时候用什么方式来清除浮云,越详细越好!谢谢,初学者,不懂的好多!
    Supplement 1  ·  Jul 23, 2013
    还是清除浮动的问题,求解!
    一个主容器里面的3个盒子,上面有2个盒子一个左浮动一个右浮动,最后一个盒子不浮动 那要怎么清除浮动咧 ?
    我最常用的是在最后一个盒子上面加一个结构然后清除 我觉得这方式不好 在结构里写个空标签不太好
    Supplement 2  ·  Jul 31, 2013
    谢谢你们的解答,关于清除浮动的问题已经有了个大概的概念!
    Supplement 3  ·  Jul 31, 2013
    最近遇到个清除浮动的问题,IE8下面,主容器里面有三小容器,分别是左中右三容器,然后在主容器上用overflow:auto清除自身浮动时,右容器下滑还出现scorllbar ,关于这个问题在不改变用overflow:auto清除浮动的情况下,怎么修复这个BUG
    13 replies    1970-01-01 08:00:00 +08:00
    thinkxen
        1
    thinkxen  
       Jul 17, 2013
    我喜欢在父元素里用overflow:hidden;好想需要给定宽度。
    也有其他的,看自己喜好了~~~
    好久没写CSS了,忘差不多了~~~
    airyland
        2
    airyland  
       Jul 17, 2013 via Android
    麻烦自己google
    chshouyu
        3
    chshouyu  
       Jul 17, 2013
    .cf:after { content:""; display:table; clear: both; overflow:hidden;}
    .cf { zoom: 1;}
    aggron
        4
    aggron  
       Jul 17, 2013
    .clearfix{*zoom:1}

    .clearfix:before, .clearfix:after{
    display:table;
    line-height:0;
    content:""
    }

    .clearfix:after{clear:both}

    来自bootstrap, 在父容器中指定class="clearfix"就OK了
    83f420984
        5
    83f420984  
    OP
       Jul 18, 2013
    @aggron
    @chshouyu
    @thinkxen
    @airyland 谢谢了,貌似没有说明这些是在那些地方用的?不可能有成万能浮动清除吧? 比如说我昨天就遇到个,上面的容器浮动后,下面的容器在父元素里写了个clear:both清除浮动后,这个容器的margin-top就失效了,说明清除浮动失败了啊。
    DaniloSam
        7
    DaniloSam  
       Jul 31, 2013
    附言, 是你的布局思路问题, 不是浮动的问题

    你一定是这样布局的吧

    <div class="float_left"></div>
    <div class="none_float"></div>
    <div class="float_right"></div>

    无奈中间的元素要设置overflow: hidden; *zoom: 1; 父元素要清除浮动, 要么都定宽, 要么中间的不定宽

    布局出现变化, 需要各种定宽或者改变宽度的情况, 抓狂了么?

    何不这样:
    <div class="row">

    <div class="sidebar float_left">
    </div>

    <div class="content">

    <div class="content">
    </div>

    <div class="sidebar float_right">
    </div>

    </div>

    </div>

    .row 上清除浮动
    .content: overflow: hidden; *zoom: 1; 无需定宽, 无需清除浮动
    .sidebar 上设定 margin 视情况而进行浮动, 可以通过.float_left 这样的类辅助

    再加一栏, 一样, 套一个即可

    写一套样式, 可以有好几套布局
    jjplay
        8
    jjplay  
       Jul 31, 2013
    一个简单的例子就是酱紫的,
    <div 我不浮动>

    <div 我浮动啦> xxx </div>

    </div>

    这样外层不浮动的div 就会无法包裹住里面的,里面的溢出,这时候需要在外层 clearfix一下
    NemoAlex
        9
    NemoAlex  
       Jul 31, 2013
    一直在用的是这个 clearfix:
    http://h5bp.com/q
    .clearfix:before, .clearfix:after { content: ""; display: table; }
    .clearfix:after { clear: both; }
    .clearfix { *zoom: 1; }
    .clear { clear: both; }
    83f420984
        10
    83f420984  
    OP
       Jul 31, 2013 via Android
    @DaniloSam
    @NemoAlex
    @jjplay 感谢解答啊
    DaniloSam
        11
    DaniloSam  
       Aug 1, 2013
    第三条, overflow: auto;是默认属性, 怎么可能会清除浮动?

    我上面写的已经包括了你这问的答案了
    bzw875
        12
    bzw875  
       Dec 29, 2013
    @aggron 我用了你这个但是不理解啊
    .clearfix{*zoom:1} [IE缩放为1]

    .clearfix:before, .clearfix:after{
    display:table; [块级表格来显示]
    line-height:0; [行高为0]
    content:"" [输出内容“空”]
    }

    .clearfix:after{clear:both} [清除浮动]

    ————这个怎么就能清除浮动了?
    PS不是来挖坟的,就是不理解。
    83f420984
        13
    83f420984  
    OP
       Dec 31, 2013
    @bzw875
    .clearfix{*zoom:1} [IE缩放为1] 这个不是缩放为1 ,是触发IE的layout.

    .clearfix:before, .clearfix:after{
    display:table; [块级表格来显示]
    line-height:0; [行高为0]
    content:"" [输出内容“空”]
    }
    我理解的是在在清除浮动容器的前面和后分别加入了一个“空元素”,你用过<div class="clear"></div>清除浮动么?上面的意思只不把这个标签只不过把这个标签“透明化了”。说的不对请指点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1031 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 19:00 · PVG 03:00 · LAX 12:00 · JFK 15:00
    ♥ Do have faith in what you're doing.