1

我有这个代码:

#container {
    position:relative;
    width:760px;    

    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;

    border: 1px solid #cdcdcd;  
}

#sidebar {
    float:left;
    width: 200px;
    background:red;
}

#wrapper {
    float:left;
    width:460px;
background:blue;

}

和这个 HTML 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <title>Example.com</title>
        <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body>
        <div id="container">
            <div id="sidebar">
                        LEFT
            </div>

            <div id="wrapper">
                RIGHT
            </div>          
        </div>  
    </body>
</html>

我看到容器没有高度......我必须设置它吗?我想根据内部 DIV 的高度来解释高度,我该怎么做?

4

3 回答 3

4

您不必设置高度,只需添加:

<div style="clear: both;"></div>

直接在您浮动的任何 div 下方。


在你的情况下,你可以这样做:

只需将其添加到您的 CSS 文件中。

.clear {
  clear: both;
}

并更新您的 HTML 文件以匹配

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
        <title>Example.com</title>
        <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>
    <body>
        <div id="container">
            <div id="sidebar">
                        LEFT
            </div>

            <div id="wrapper">
                RIGHT
            </div>    
            <div class="clear"></div>      
        </div>  
    </body>
</html>
于 2012-05-03T16:21:56.940 回答
1

发生这种情况是因为您使用了float:left. 一种解决方案是添加一个clear:bothdiv,如下所示:

CSS:

.clear {
    clear: both;
}

HTML:

<div id="container">
    <div id="sidebar">LEFT</div>
    <div id="wrapper">RIGHT</div>
    <div class="clear"></div>
</div>  
于 2012-05-03T16:23:26.843 回答
0

给容器额外的 CSS

overflow: hidden;

这将在没有额外标记的情况下破坏浮动
(不适用于内部的 box-shadow)

于 2012-05-03T16:37:22.047 回答