【问题标题】:Nested floats clearfix stretches to wrong height explanation嵌套浮动 clearfix 延伸到错误高度的解释
【发布时间】:2015-12-24 18:51:47
【问题描述】:

我对浮动 div 及其上的 clearfix 有疑问。 clearfix 使容器扩展到错误的高度。在 JSfiddle html 部分,我添加了 <!-- ADD class="container" HERE --> 。将类添加到它旁边的 div 中,您会看到它的子 (h_container) 正在扩展。

http://jsfiddle.net/f9ojod2y/1/

html:

<div class="container">
    <div class="right_f">
    </div>
    <div class="left_f">
        <div>    <!-- ADD class="container" HERE -->
           <div class="h_container">
                <div class="left_h">

                </div>
            </div>
            <div class="h_container">
               <div class="right_h">

               </div> 
            </div>
       </div>
    </div>
</div>

这是 right_f 向右浮动。 h_container 向左浮动

我预计h_container 根本不会扩大,但它会扩大到right_f 的高度。我知道这个问题可以通过从 clearflix 中删除 display:table 或删除课程来解决,但出于某些原因,我希望课程在那里。

谁能解释为什么left_f 中的clearfix 使h_containerright_f 具有相同的高度?

另外,我注意到在 jsfiddle 中绿色 div 上方有我无法解释的空闲空间。我的原始代码中没有。

【问题讨论】:

    标签: html css css-float clearfix


    【解决方案1】:

    这对我有用,希望它能解决您的问题。

    更改这些类:

    .right_f {
        background-color: red;
        float: right;
        width: 200px;
    }
    .left_f {
        background-color: green;
        float: left;
        width: calc(100% - 220px);
    }
    

    只需添加一个类即可删除由于&lt;p&gt; 标签而产生的额外填充:

    .container p{
       margin:0px;
       padding:0px;
    }
    

    请让我知道这是否可行,还请指定您想要相同高度的 3 个 div,我也可以为此建议代码。谢谢

    【讨论】:

    • 如果我将这个添加到我提供的 JSfiddle 中,它并不能解决文本跳下的问题。 (也不删除

      标签)

    • 请在上面找到更新的答案,让我知道还有什么其他问题。
    • 这确实解决了它(+1),但没有给出解释(我搜索过)为什么 clearfix 有这种行为:('sometext sometext ...)在 JSfiddle 跳下时添加 class="container"
    • 清除:两者;属性已应用于 .container:after & container:before。如果您编辑类 container:after, container:before{clear:both} 并从中删除 Container:after,它将起作用 原因: clearfix 的作用:c​​learfix 是元素的一种方式自动清除其类中具有 float 属性的子元素,这样您就不需要添加额外的标记。清除:都清除子div元素中的任何浮动,这样父元素就不会塌陷。
    • 我知道它的作用。但是a)我怀疑在clearfix之后父母会得到孩子的身高,但是在这种情况下它不会那样做。它得到红色 div 的高度,而不是黄色/青色的高度。红色的 div 不是 div 的孩子! B)问题不仅是导致它的容器 : clear:both 之后的问题,还有 display:table 修复它
    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2016-10-01
    相关资源
    最近更新 更多