Переполнение контейнера 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>