Резиновая верстка на div'ах: проблема с кроссбраузерностью

A
На сайте с 29.08.2007
Offline
22
3514

Помогите плиз советом:

http://korund34.ru/

Задача сделать дизайн резиновым, т.е. чтобы правая колонка тянулась до границы окна браузера. В IE все нормально, а в Опере текст располагается над футером по всей ширине экрана.

Подскажите, что я делаю не так?

Урюпинский форум (http://forum.urup.ru)
serg-smirnoff
На сайте с 23.02.2008
Offline
139
#1

Если честно, я не знаю насколько правильным будет это решение для вашего варианта верстки.

Но попробуйте задать для #right значение width: 50%;

Т.е. так что бы суммарные широты left и right не превышали ширины браузера

A
На сайте с 29.08.2007
Offline
22
#2

В таком варианте получается "плавающая" левая граница правой колонки, что не очень красиво... Мне бы хотелось чтобы правая колонка располагалась на 350 пикселей от левой границы экрана и была шириной до правой границы экрана.

T4
На сайте с 20.09.2007
Offline
25
tt4
#3

Используйте отрицательные поля: http://webmascon.com/topics/coding/43a.asp

Также поработайте над min-width. Для этого либо expression, либо вложенные дивы вокруг всего контента (пять дивов).

serg-smirnoff
На сайте с 23.02.2008
Offline
139
#4
alexmyt:
В таком варианте получается "плавающая" левая граница правой колонки, что не очень красиво... Мне бы хотелось чтобы правая колонка располагалась на 350 пикселей от левой границы экрана и была шириной до правой границы экрана.

у меня в таком случае левая колонка прибилась к правой, потому что float:left; и не схлопнулась потому что width у левой + width у правой != ширина экрана. но схлопнется при сужении размеров экрана.

используйте margin-left равный ширине левой колонки.

я в свое время использовал конструкцию

div#left {width: 242px; float: left;}

div#right {margin-left: 245px; min-height: 400px;}

и она у меня работала. до сих пор работает кстати. min-height и min-width не будут работать в IE, там понадобится expression

T4
На сайте с 20.09.2007
Offline
25
tt4
#5

Всё же считаю, что в данном случае отрицательные поля решат все проблемы. Схлопывание преодолевается выставлением родительскому блоку свойства overflow:hiddden (если IE закапризничает, можно height:1% попробовать, это свойство его обычно успокаивает). Также после блока #parent может стоять блок со свойством clear:both, это уж кому что больше нравится.

<style>

div#parent{overflow:hidden;}

div#left{float:left;width:250px;}

div#right_container{float:right;width:100%;margin-right:-250px;}

div#right{margin-left:600px;}

</style>

<div id="parent">

<div id="right_container">

<div id="right">

Правая колонка. За счет margin-left равного 250 (ширина левой колонки) + 350 (необходимый отступ), правая колонка всегда отстает от левой на 350 пикселей.

</div>

</div>

<div id="left">

Левая колонка

</div>

</div>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий