| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > Странное поведение DIV'ов со 100% шириной в Опере. |
| Автор: Vitalik 5.8.2007, 22:03 | ||
| Собственно возникла следующая проблема. Даже две. Есть один главный DIV (root), у которого хотелось бы сделать высоту ровно 100% от экрана. Или по крайней мере, чтобы эта высота никогда эти 100% не превысила. Есть два DIV'а внутри. Первый DIV (header) это просто заголовочек (белый текст на темном фоне). Второй DIV (content) это основное содержимое страницы. Хотелось бы, чтобы здесь появлялась полоса прокрутки при очень большом тексте (overflow: scroll). Вот собственно и все.. Я попробовал сделать так:
Но, во-первых, если сделать height:100% у root'а, то этот самый root растягивается больше, чем на 100% (скорее всего из-за того, что у внутреннего content тоже height:100%). Во-вторых, если установить padding:10; у блока content, то в браузере Opera его ширина безосновательно увеличивается на 20 пунктов и полоса прокрутки уже находится вне основного блока root. В Internet Explorer же все работает замечательно. Можно ли как-то решить эти проблемы?.. Добавлено через 7 минут и 29 секунд Хотя если сделать overflow:auto, то в Опере этот глюк довольно симпатично начинает смотреться, как будто так и надо (полоса прокрутки вылазит четко на границе root'а), но в Internet Explorer становится гораздо "кривее" (полоса прокрутки как-то частично скрывается за правой границей root'а).. |
| Автор: japanes 6.8.2007, 11:30 | ||
|
| Автор: Vitalik 6.8.2007, 14:18 |
| Большое спасибо, japanes! Одна проблема решена. Как выяснилось из Вашего примера, нужно было только убрать width: 100% у блока content Вторая проблема (которая под номером 1) пока остается нерешенной.. |
| Автор: WebDisaster 6.8.2007, 22:01 | ||
Vitalik, посмотрите, не устроит ли такой вариант (не смог преодолеть тяги к "семантическим" сокращениям =):
|
| Автор: Vitalik 7.8.2007, 22:17 | ||
Что Вы имели в виду? А по поводу решения: на сколько я понял вся соль в position:absolute; с последующим указанием конкретного положения блока (top, left, bottom, right) на экране? Только в этом случае это получается работает правильно, да?.. |
| Автор: WebDisaster 8.8.2007, 05:40 |
Отсутствие div.root при сохранении блоков, разделяющих контент по смыслу (div.header + div.content) Ну да. Поскольку css (без JavaScript) не даёт возможности сказать браузеру, что высота .content равна 100% минус 20px (.header), тут был использован другой принцип размещения блоков - позиционирование. А к IE, как обычно, персональный подход =) |
| Автор: WebDisaster 9.8.2007, 19:20 |
| Если будут проблемы, покажите код своей страницы. На том фрагменте, который я давал, функционирование проверено в IE 5.5-6.0 -- всё работало нормально. Какую версию IE используете? |