Почему DIV'ы width 100% не растягиваются на всю ширину?

интернет программирование дизайн html css

Представляем:

- есть набор DIV'ов с шириной 100% и абсолютным позиционированием (хедер, футер, фон);
- есть DIV'ы с собственно контентом, с фиксированной шириной, абсолютным позиционированием, отцентрированные через left 50% и margin-left.

Почему когда сжимаешь окно браузера по ширине, появляется скролинг, чтобы отобразить фиксированную чать, а нефиксированные DIV'ы никак не растягиваются как бы я не изращался?

Как это поправить без javascript желательно.

Помогает указание fixed вместо absolute, но это не выход.

Примечание:
#header-background
{
position:absolute;
left:0px;
top:0px;
height:60px;
width:100%;
min-width:100%;
background-color:#bbdd99;
background-image: url(images/header_background.gif);
background-repeat: repeat-x;
z-index: 0;
}
...
#background {
position:absolute;
left:0px;
top:360px;
bottom: 63px;
width:100%;
background-image: url(images/background.jpg);
background-repeat: repeat;
z-index: 0;
}
#container {
position:absolute;
left: 50%;
top: 360px;
bottom: 63px;
width: 916px;
margin-left: -458px;
overflow:hidden;
z-index: 1;
}
...
#footer-background {
position:fixed;
left: 0px;
bottom:0px;
width:100%;
height:60px;
background-color:#bbdd99;
background-image: url(images/header_background.gif);
background-repeat: repeat-x;
z-index: 0;
}


...
<div id="header-background"></div>
...
<div id="background"></div>
<div id="container">
...............
</div>
<div id="footer-background"></div>
...

Примечание:
min-width:100%; - это одно из извращений...

Примечание:
2 Биополе

Вот, спасибо, помогли советом: при вёрстке слоями используй таблицы...

Примечание:
position:fixed; помогает, но это лажа...

Примечание:
2 rwt

> попробуй заменить везде position:absolute; на float: left;

Нет, становиться ещё хуже...

Примечание:
2 Биополе

Что значит основной?
Для того, чтобы вписался, придумали скроллинг.

Примечание:
2 Биополе

Задача, чтобы:

1) header, footer, background ВСЕГДА занимали всю доступную по ширине область, включая и ту, которая появляется при скроллинге container.

2) container всегда отображался по центру окна и относительно header, footer и background.

Пробовал и right 0px; вместо 100%, но всё одно и то же.

Примечание:
2 Биополе

IE по-другому слои обрабатывает, для него иногда приходится искать другое решение...

Примечание:
2 Биополе

Хотя у меня честно говоря не заработало и в Opera...

Примечание:
2 aloneloony

Спасибо, но помогло другое:

min-width:916px;

плюс ещё пошаманил с внешними контейнерами.
Ответы:
Код в студию
А попробуй таблицу. Таблица точно растягивается при установке стиля.
Хотя мож я чет не понимаю...
При абсолютном позиционировании ничем не различаются.
Хотя и со слоями вроде работает..
Я не применяю таблицы стилей, но там разницы нет
Я так понимаю "header-background" это основной слой?
попробуй заменить везде position:absolute; на float: left;
Я так понимаю, вся загвоздка в размере слоя container...
Он уж, извините, никак не впишется в страничку если ее уменьшить.
Т.е. задача отформатировать ширину слоев бэкграунд'а по ширине container'a?
Но ты явно задаешь ширину бэкграундов по размеру окна (100%).
Браузер все правильно отображает, т.е. скроллинг появляется только из-за контейнера.
Короче так не получится никак.
Надо наверно создать слой, который будет включать в себя контейнер и иметь его ширину.
Тогда уже вписываешь в ширину этого слоя и фоновые слои.
Ща попробую осуществить
Короче добавил общий слой main, в нем все остальные.
Работает почему-то только в опере... :-(
Блин сам запутался ... :-S
Проще с JS :-)))
может быть это поможет?
body{
margin:0;
padding:0;
}
Убирай min-width:100%; из хэдера совсем. Нахрен эти извращения.
UPD: /* когда ж на ВиО ответы можно дополнять будет?! */
Или тогда прописывай min-width:100% и у бэкграунда, и у футера.
У тебя же, получается, 2 div'а сжимаются, а один — нет.
проблема была вызвана тем, что опредиление ширины происходит двумя путями:
- четкое опредиление;
- относотельное (т.е. вычисляемое).
Сталкивался с подобной проблемой: ширина 100% у дива первоначально устанавливается по ширине браузера, а потом при его рисайзинге в меньшую сторону (с появлением горизонтальной полосы прокрутки) не меняется - даже если контент по идее должен был растянуть этот див (выходит за границы)! Как вариант:
width: 100%;
height: 100%;
min-height: 100%;
display: table;
Ключевая здесь последняя строка


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.