| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > 3 дива в строке |
| Автор: artsb 22.7.2009, 10:14 |
| Всем привет! Есть див. Внутри него три дива в строку. 2-ой див имеет статическую ширину. Его нужно расположить по центру. 1-ый и 3-ий должны занимать всё оставшееся место слева и справа соответственно. Есть очень много информации о том как сделать крайние дивы статического размера, а центральный будет растягиваться. А по моему вопросу ничего не нашёл :( |
| Автор: LolensSmith 22.7.2009, 13:09 | ||||
Сам задумался над этим вопросом, и лучше чем
придумать не смог. Я не уверен что это подойдет, так как при изменении размеров слева и справа, center становится совсем не в центре. p.s. А почему бы не попробывать с table.
Получится тоже самое что и с дивами только другими тегами... |
| Автор: artsb 22.7.2009, 14:11 |
| LolensSmith, спасибо. Я тоже пробовал таблицу сделать. И сразу споткнулся об IE... После того, как делаю для всех (3-ёх) ячеек padding: 0, в IE 1-ый и 3-ий столбцы исчезают. Пришлось добавить пробелы. Вроде, всё норм. Это, вообще, как-нибудь лечится? |
| Автор: LolensSmith 22.7.2009, 14:42 | ||
| Если я тебя правильно понял, то вот код как правильно пишется... - заменяет пробел
А для чего делать padding: 0; если cellpadding=0 cellspacing=0 итак делает отступ 0px?? p.s. добавил в код valign="top". Он распологает содержимое ячейки в верху. По стандарту в браузерах идет по центру. Допустим если ширина ячейки 3 будет на много больше чем 1. то в ячейке 1 текст будет распалагаться на уравне центра ячейки 3. Впрочем valign="top" это исправляет. p.s.s. Поэксперементируй с cellpadding=0 cellspacing=0, поймешь что они делают. Сделай к примеру cellpadding="5px" cellspacing="10px" или больше... |
| Автор: artsb 22.7.2009, 14:59 |
Я заюзал Привычка. Стараюсь всё делать css средствами. Хотя может cellpadding=0 поможет... это то я знаю |
| Автор: LolensSmith 22.7.2009, 15:17 |
| Пробывал на Opera 9.64, Боковые div'ы "Прячутся" под центральным... |
| Автор: artsb 22.7.2009, 15:23 |
| WebDisaster, спасибо. Единственное, 2-ку не видно Не подскажете сразу, как вытянуть див внутри другого дива по высоте. Если поставить height: 100%, в FF его высота становится равной высоте экрана (???), а в IE - ничего... |
| Автор: WebDisaster 22.7.2009, 15:28 | ||
artsb, высота любого блока считается браузером в %% от высоты внешнего бочного элемента. Т.е. нужно задавать необходимую высоту и для всех внешних блоков. А как должно быть? Не имея в руках конкретной задачи затрудняюсь что-либо сказать. Убежал... |
| Автор: artsb 22.7.2009, 16:54 |
Должно быть видно Кстати, меня устраивает вариант с таблицей. Единственный косяк, который сейчас заметил, это то, что при уменьшении ширины окна браузера, средняя ячейка таблицы уменьшается. Пробовал ставить overflow: hidden и таблице и всем ячейкам. Не помогает... |
| Автор: WebDisaster 22.7.2009, 17:31 | ||
Что будет внутри "резиновых" блоков? Текст? Картинка? Другие блоки? Что будет внутри среднего "фиксированного" блока? От этого зависит, что советовать. В примере ниже, например, обрезаться ничего не будет. Но я не представляю, подходит ли это Вам. Существенные условия задачи остались неизвестными.
|
| Автор: artsb 22.7.2009, 18:12 |
| WebDisaster, я вас понял. Значит так. Я делаю footer. Это див, в котором три дива. Центральный фиксированный - это продолжение самой страницы. Крайние дивы должны занимать всё оставшееся место. Все три дива имеют бекграунды. В центральном будут дивы. Крайние пустые. А у вас нет мыслей по поводу таблицы?.. |
| Автор: WebDisaster 22.7.2009, 18:37 |
repeat-x? repeat-y? no-repeat? Я думаю, что проблему "видимости" бэкграунда можно будет решить его позиционированием, даже не добавляя дополнительных блочных элементов. Примерно так: #second { background: transparent url(../images/page-bg.png) repeat-y 50% 45px; } А если увидеть макет, то возможно окажется, что эти "боковые резиновые" блоки вообще не нужны, а бэкграунд repeat-y можно позиционировать прямо в <body> http://www.htmlbook.ru/css/background-position.html Если Вас интересует моё мнение, то я сторонник семантики: таблица предназначена для хранения табличных данных, а не для позиционирования элементов. Но я не собираюсь никому своё мнение навязывать (или даже убеждать =). Делайте так, как считаете нужным. |
| Автор: artsb 22.7.2009, 20:49 | ||
Я довольно хорошо знаю css.
Неа. Не получится. Слева и справа разные бэкгроунды. |
| Автор: Itsys 23.7.2009, 06:29 | ||
Это решается вставкой прозрачного однопиксельного gifa растянутого на всю ширину ячейки, в этом случае ячейка не уменьшится меньше этих размеров. |
| Автор: artsb 23.7.2009, 11:32 |
| Itsys, спасибо. Уже разобрался. |