Переполнение контейнера div по горизонтали, но не по вертикали

Я работаю над сайтом, который использует две колонки внутри контейнера. Контейнер имеет белый фон, который должен простираться до нижней части любого столбца, поэтому я использую для этого метод Святого Грааля.

Однако оба столбца следует расположить так, чтобы часть их превышала белый фон (в этом примере используется фиксированная высота, которая должна быть плавной). Насколько я знаю, это можно сделать только установив видимый переполнение, но это нарушит равную высоту столбцов.

Как мне исправить это с помощью как можно меньшего количества дополнительных элементов?

2 ответа

Решение

Самым простым исправлением в этом случае является добавление <br style="clear:both" /> перед закрывающим тегом для #container,

Вы можете изменить его на <br class="clearfix" /> а также .clearfix{clear:both} если хочешь.

Решение заключается в использовании inline-block элементы..

Css

.container{
    width:300px;
    background-color:#ccc;
    margin:0 auto;
    border:1px solid red;
}
.container > div{
    width:150px;
    display:inline-block;
    vertical-align:top;
}
.inner{
    background-color:#666;
    margin-top:10px;
    width:130px;
}
.left .inner{
    margin-left:-10px;
}
.right .inner{
    margin-right:-10px;
    margin-left:auto;
}

HTML

<div class="container">
    <div class="left">
        <div class="inner">left 1st inner panel</div>
        <div class="inner">left 2nd inner panel</div>
    </div><div class="right">
        <div class="inner">right 1st inner panel</div>
        <div class="inner">right 2nd inner panel with arbitrary text to show the increase in parent elements</div>
    </div>
</div>

посмотреть демо

Другие вопросы по тегам