CSS重叠div

时间:2010-02-12 11:33:51

标签: css html overlap

用这个css

.addProblemClass{
    width:300px;
    height:300px;
    /*width:25%;
    height:40%;*/
    border:solid 1px #000000;
    margin: 5px;
    background-color:#FFFFFF;
    padding:5px;
    opacity:0.9;/*For chrome and mozilla*/
    filter:alpha(opacity=90);/*For IE*/
}

.boxHeader{
    border: solid 1px #000000;
    height: 20%;
    padding: 5px;
}

.addProblemHeaderTextDiv{
    border:solid 1px #FF0000;
    width: 80%;
    height: 100%;
}

.addProblemHeaderImageDiv{
    border:solid 1px #00FF00;
    float: left;
    width: 20%;
    height: 100%;
}

和这个html

<div class="addProblemClass">
            <div class="boxHeader">
                <div class="addProblemHeaderImageDiv"></div>//DIV A
                <div class="addProblemHeaderTextDiv"></div>//DIV B
            </div>
        </div>

为什么DIV A和DIV B过度使用?

2 个答案:

答案 0 :(得分:1)

使用

float: left;

addProblemHeaderTextDiv班级

.addProblemHeaderTextDiv{
    border:solid 1px #FF0000;
    width: 80%;
    float: left;
    height: 100%;
}

<强> 修改

  

为什么它以两行显示?

由于您将宽度指定为20%和80%,因此它们将填满整个空间。您还设置了边框,因此它不适合100%的空间。您可以减小任何div的宽度或删除边框。

答案 1 :(得分:0)

你因为CSS Box模型而无法做到这一点..它会像这样添加1px边框

20% + 80% = 100% width + 1px border 

这可以通过使用边距再次减去边框来实现。否则你恐怕会使用更多标记。

.addProblemHeaderTextDiv{
    border:solid 1px #FF0000;
    width: 80%;
    margin: 0 -1px;
    height: 100%;
    float: left;

}

.addProblemHeaderImageDiv{
    border:solid 1px #00FF00;
    margin: 0 -1px;
    float: left;
    width: 20%;
    height: 100%;
}