Я пытаюсь использовать <div>
объекты и CSS для эмуляции внешнего вида фреймов для проекта, над которым я работаю.Используя следующий код, я смог правильно растянуть список слева с помощью border-right
, padding
и (если я выберу) background
, используя только один дополнительный элемент:
HTML:
<div id="sidebar">
<div id="sidebar-content">
<!-- content goes here -->
</div>
</div>
<div id="content">
<!-- more content -->
</div>
CSS:
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#sidebar {
float: left;
height: 100%;
width: 200px;
overflow: auto;
border-right: solid 1px #000;
}
#sidebar-content {
margin: 10px;
padding: 0;
list-style: none;
}
#content {
position: relative;
float: left;
padding: 10px;
}
Это работало хорошо, пока я не попытался добавить еще один элемент в верхней части содержимого, которое растянулось горизонтально.Вот текущий код:
HTML:
<div id="content">
<div id="criteria">
<!-- select boxes -->
</div>
<!-- other content -->
</div>
CSS:
#criteria {
position: absolute;
left: 0;
right: 0;
background: #FF9;
}
На этом рисунке показаны результаты
Я попытался добавить следующее правило:
#content {
width: 100%;
}
, хотя это растянуло #content
div до ширины элемента body, а не тела минус боковая панель - поэтому содержимое появилось ниже сгиба (и под боковой панелью слева)
Как я могу использовать CSS, чтобы растянуть поле критериев для горизонтального заполнения области содержимого?
РЕДАКТИРОВАТЬ -
Я хотел загрузитькартина того, что произошло после рекомендации Карла:
Удалите float: left
из #content
.Если рядом с обычным блочным элементом есть плавающий элемент, блочный элемент заполнит оставшееся пространство.Также не устанавливайте атрибут ширины.
Вот что произошло, когда float: left
было удалено
Закрыть, однако теперь #criteria
растягивается, чтобы прикрыть боковую панель.Другие предложения?