CSS浮动导致布局中断

CSS浮动导致布局中断,css,Css,如果您将以下HTML复制到文本编辑器中并在浏览器中进行测试,您将看到黄色框具有巨大的高度!这是因为它有一个clearfix类,并且正在从左侧的边栏中清除自己 我怎样才能阻止这种事情发生 我尝试使用溢出:隐藏在中间一列,但这意味着如果我有一个长内容的表,它将被切断!另外,为什么在执行此操作时,使用左侧边距会在右侧添加边距?尝试应用显示:内联块在您的中间分区上: .Middle { margin-left: 220px; display: inline-block; } 您可能还需

如果您将以下HTML复制到文本编辑器中并在浏览器中进行测试,您将看到黄色框具有巨大的高度!这是因为它有一个clearfix类,并且正在从左侧的边栏中清除自己

我怎样才能阻止这种事情发生


我尝试使用
溢出:隐藏在中间一列,但这意味着如果我有一个长内容的表,它将被切断!另外,为什么在执行此操作时,使用
左侧边距
会在右侧添加边距?

尝试应用
显示:内联块在您的
中间
分区上:

.Middle
{
    margin-left: 220px;
    display: inline-block;
}
您可能还需要为其指定
宽度
,以获得所需的布局


更新:

我已经找到了一种获得布局行为的方法,我想你在追求它,但是我已经通过剥离clearfix样式来做到了。再近一点吗

<!doctype html>
<html lang="en">
    <head>
        <title>Test</title>
        <style type="text/css">
        body
        {
            margin:0;
            padding:0;
        }
        .MainContent
        {
            margin: 20px;
            width:200px;
        }
        .Middle
        {
            margin-left: 220px;
            margin-top: -300px;
            vertical-align: top;
            float: left;
        }
        */
        </style>
    </head>
    <body>

        <div class="MainContent clearfix">

            <div style="width:200px;float:left;">

                <div style="height:300px;background:blue;"></div>

            </div>

            <div class="Middle">

                <div style="padding:20px;background:red;">

                    <div style="padding:10px;background:yellow;margin-bottom:20px;height:20px;">
                        <div style="float:left;height:20px;width:300px;background:green;"></div>
                        <div style="float:right;height:20px;width:300px;background:green;"></div>
                    </div>

                    <table style="border:#000 1px solid;">
                        <tr>
                            <td>ioruturiotueorit eiortueriotuoeotigggggggggggggggggggggggggggggggggggggggggggggggggggggggieruter tiouriotueroutoerutiuerteorituero tuioerutioeriotueroutoeruto eroturoetuoerutqe;ruqe; rty80yuto;eqotouyt4uyity 4iltyilytilryterutyertuyertuyert erut uerytierutyerutylerytelryltylert qerytuiertyileqrtyuqet</td>
                            <td>ioruturiotueorit eiortueriotuoeotiieruter tiouriotueroutoerutiuerteorituero tuioerutioeriotueroutoeruto eroturoeteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeuoerutqe;ruqe; rty80yuto;eqotouyt4uyity 4iltyilytilryterutyertuyertuyert erut uerytierutyerutylerytelryltylert qerytuiertyileqrtyuqet</td>
                            <td>ioruturiotueorit eiortueriotuoeotiieruter tiouriotueroutoerutiuerteorituero tuioerutioeriotueroutoeruto eroturoetuoerutqe;ruqe; rty80yuto;eqotouyt4uyity 4iltyilytilryterutyertuyertuyert erut uerytierutyerutylerytelryltylert qerytuiertyileqrtyuqet</td>
                        </tr>
                    </table>

                </div>

            </div>

        </div>

    </body>
</html>

试验
身体
{
保证金:0;
填充:0;
}
.主要内容
{
利润率:20px;
宽度:200px;
}
中间的
{
左边距:220px;
利润上限:-300px;
垂直对齐:顶部;
浮动:左;
}
*/
我认为这是一个非常重要的问题;鲁克;rty80yuto;EqoTouyT4uyTillyTillyTillyTuyerTuyerTuyerTuyerTureTureTureTureTureTureTureTureTureTureTureTureTureTureQetyEqoEqoTouTouyT4uyTillyTureTuyerTureTureTureTureTureTureTure
或者说,如果你是一个专业人士,那么你就应该是一个专业人士;鲁克;rty80yuto;EqoTouyT4uyTillyTillyTillyTuyerTuyerTuyerTuyerTureTureTureTureTureTureTureTureTureTureTureTureTureTureQetyEqoEqoTouTouyT4uyTillyTureTuyerTureTureTureTureTureTureTure
或者说,它是由一个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个或多个;鲁克;rty80yuto;EqoTouyT4uyTillyTillyTillyTuyerTuyerTuyerTuyerTureTureTureTureTureTureTureTureTureTureTureTureTureTureQetyEqoEqoTouTouyT4uyTillyTureTuyerTureTureTureTureTureTureTure

这可能会有所帮助:不,那篇文章解释了如何清除浮动元素。我想问的是,当您不想隐藏溢出并且无法使用自动溢出时,如何处理隐藏的溢出。好的,我想我明白了。当内容非常广泛时,会发生什么?中间(红色框)是否应该向右扩展以包含宽内容?是的,如果应用了溢出隐藏,这显然是不可能的,这需要将其从左侧容器中清除。溢出自动在这种情况下也不起作用,因为它使面板再次可滚动,这是我试图避免的。