CSS - 浮动导致不需要的渲染

时间:2012-07-20 13:44:04

标签: html css layout

我的CSS:

body
{
    font-family:verdana;
    line-height:1.5em;
    color:#666;
    font-size:0.8em;
}

.objectAttributesOuter
{
    border: 1px solid #999;
    padding:6px;
    margin:6px;
    background-color:#EDEEFA
}


.objectAttributes
{
    padding: 5px, 0px, 5px, 5px;
}


.whiteBoxWithBorder
{
    padding:5px;
    margin-right:5px;
    background-color:#fff;    
    border: solid 1px #ccc;
    float:left;
}

我的HTML:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<Title>Details</Title>
<link rel  = "stylesheet" href="css.css" type = "text/css" />
</HEAD>
<BODY>


<div class = "objectAttributesOuter">
    <div class="objectAttributes">
         <div class="whiteBoxWithBorder">
                GetType()
         </div> 
         <div class="whiteBoxWithBorder">
                Returns the type ...
         </div>
    </div>
</div>


</BODY>
</HTML>

理想的渲染方法是在“objectAttributesOuter”中渲染“whiteBox”,但正如您所看到的那样重叠。如果我删除了float标签,那么2 divs会在whiteBox内呈现,但是不要并排显示。

我是如何让它们在“objectAttributesOuter”标签中并排显示的?

4 个答案:

答案 0 :(得分:1)

查看myFiddle

使用<div style="clear:both"></div>

答案 1 :(得分:0)

尝试将overflow:auto放在.objectAttributes上,看看是否有帮助。

如果您的容器和浮动元素有宽度,也会有所帮助。

答案 2 :(得分:0)

把一个浮动:放在objectAttributesOuter上:

.objectAttributesOuter
{
    border: 1px solid #999;
    padding:6px;
    margin:6px;
    background-color:#EDEEFA;
    float:left;
}

答案 3 :(得分:0)

更改objectAttributesOuter类如下;

.objectAttributesOuter
{
    border: 1px solid #999;
    padding:6px;
    margin:6px;
    background-color:#EDEEFA;
    overflow:auto;
}