<div class="parent">
    <div style="float:left;">
        Content 1
    </div>

    <div style="float:right;">
        Content 2
    </div>
</div>


CSS:

.parent {
    normal styling for parent
}

.parent:before,
.parent:after {
    content: "";
    display: table;
}

.parent:after {
    clear: both;
}


问题在于,出于某种原因,父母的身高比预期的要高。如果我删除了:before和:after样式,那么父母的身高是正常的,但是我当然会松开clearfix。

我想知道在引入这些额外样式后如何确保父母的身高没有变化。

这就是我的意思

没有:before和:after样式

------------------------------------------
\content1                        content2\
------------------------------------------


使用:before和:after样式

------------------------------------------
\content1                        content2\
\                                        \
------------------------------------------


由于某种原因,它会在不需要时引入额外的空间。

最佳答案

尝试在伪元素中定义高度:

.parent {
    border: 2px solid red;
    max-width: 300px;
    margin: auto;
}
.parent:after {
    content: "";
    display: block;
    clear: both;
    height: 0;
}


https://jsbin.com/nesumimato/edit?html,css,js,output

10-06 16:21
查看更多