Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > DIV между двумя DIVами


Автор: APro 15.12.2008, 20:11
Как сделать, чтобы 1 div был ровно по центру между двумя другими, да ещё и резиновый?  smile  smile  smile 

Как я только не пробовал - всё равно не получается по центру! Может быть кто подскажет чего?

Автор: bars80080 15.12.2008, 20:57
три дива - первый с фиксированной шириной и float: left; второй с фиксированной шириной и float: right; третий без указаний - он будет резиновым

Автор: APro 15.12.2008, 22:04
неправда   smile 

Автор: K1ng 15.12.2008, 22:36



Код

<div style="float:left;width:300px;">Левый див!</div>
<div style="float:right;width:300px;">Правый див!!!</div>
<div>Средний див!!</div>

Именно в таком порядке!

Автор: APro 15.12.2008, 22:52
не смешно!!!!  smile Там получается как то бредово!!! Есть другой вариант?

Автор: K1ng 15.12.2008, 23:02
Этот вариант отлично работает! Тебя смущает что второй див сползает под первый при сужении до 700px? Ну извините! А ты чего ждал? Сделай таблицами! Ячейки перескакивать не будут! Или поставь для блока контейнера min-witdh:750px; к примеру:
HTML
<div style="min-width:750px;">
<p style="float:left;width:300px;">Левый див!</p>
<p style="float:right;width:300px;">Правый див!!!</p>
<p>Средний див!!</p>
</div>

Но этот способ будет бесполезен в браузерах: IE6 и Maxthon

Автор: APro 15.12.2008, 23:29
Я сделал 3 блока. 2 первых float:left, а третий float:right ... Я поставил в процентах: 22% 50% 22% соответственно. В средний блок добавил min-witdh:250px. Почему когда я приближаю в Opera, то последний див смещается вниз, хотя по идее если проставить 150px 250px 150px соответсвенно, то всё в одну строчку.... 

Автор: K1ng 15.12.2008, 23:32
установите min-width для блока-контейнера! правый див падает вниз потому что ему нужно аставаться в кадре, а места уже нету! Если установите минимльную ширину то сворачиваться не будет! Следовательно ему всегда будет хватать места!

И все-же я не понимаю чем этот способ лучше того что я предложил! От перестановки мест слагаемых сумма не меняется!

Автор: bars80080 16.12.2008, 01:55
Цитата(APro @  15.12.2008,  22:29 Найти цитируемый пост)
Я сделал 3 блока. 2 первых float:left, а третий float:right 

ты хотя бы думаешь, что ты делаешь? или просто наляпать?

и чем тебе не нравится вариант, который признан стандартным при такой схеме построения?

Автор: APro 16.12.2008, 07:53
Ну вот к примеру 1-й блок - там меню, посередине - текст, 3-й - там ещё что-нить. Если в Середину текст кинуть, то получится, как только закончится 1-ая и 3-яя колонка, что этот текст разойдётся по всей ширене... А это не совсем хорошо ....

Автор: webster 16.12.2008, 09:08
http://www.dynamicdrive.com/style/layouts/item/css-liquid-layout-31-fixed-fluid-fixed/

Автор: bars80080 16.12.2008, 10:52
Цитата(APro @  16.12.2008,  06:53 Найти цитируемый пост)
1-ая и 3-яя колонка, что этот текст разойдётся по всей ширене... 

каким макаром <div> сможет получить разную ширину? или это уже не прямоугольный контейнер?

Автор: APro 16.12.2008, 14:15
"Золотой ты человек"© webster. Thx U

Автор: Рыжий 14.1.2009, 02:56
bars80080, если юзать стандартный метод - средний слой все равно заполняет 100% а боковые просто поверх него расположены.
Я сейчас делаю закругленные углы, справа и слева будут картинки с прозрачными краями (вот, нужны именно прозрачные углы) а вот между ними было бы хорошо разместить этот div. чтобы получилось вроде:
user posted image
зеленым - разделение слоев
красным - прозрачность.

Если делать по вышеуказанному способу, то средний слой просто занимает все пространство. 

PS как-то не хочется юзать таблицы =( должен же быть способ через div? А может есть другой способ сделать закругленные углы +резиновая верстка

Автор: Violator 14.1.2009, 04:40
Рыжий, поставь у среднего слоя margin-left - на ширину левого слоя, а margin-right - на ширину правого слоя

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)