CSS перекрывающиеся div - PullRequest
1 голос
/ 12 февраля 2010

С этим 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 ]

1 голос
/ 12 февраля 2010

Использование

float: left;

до addProblemHeaderTextDiv класс

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

Редактировать

Почему это показано в два ряда?

Поскольку вы указываете ширину как 20% и 80%, они заполнят все пространство. Вы также устанавливаете границу, чтобы она не помещалась в 100% пространства. Вы можете уменьшить ширину любого div или удалить границу.

0 голосов
/ 12 февраля 2010

Вы не можете сделать это из-за модели 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%;
}
...