Сайты - по стандартам, но не стандартные сайты!
Здравствуйте. Есть у меня на странице 3 div'a помещённые в один общий div.
В css:
У main стоит width:100%
У col1 и col3 ширина по 100px - это как бы боковые колонки фиксированного размера.
У col1 и col2 float: left, а у col3 - float: right. Это для того чтоб col1 и col3 вставали по краям страницы и col2 занимал всё оставшееся пространство.
Пытаюсь сделать тянущийся col2 и сталкиваюсь со следующей проблемой. Если указывать ему width:100% то он уходит вниз (выползает из-под col1), растягивается на всю страницу и смещает вниз (под себя) col3. Если указывать width: auto то эффект тот же, что и при отсутсвии width - col2 занимает от свободного места ровно столько, сколько нужно его содержимому. То есть не всё свободное пространство, а лишь часть. И между ним и col3 остаётся масса пустого пространства.
Я в вёрстке не силён, поэтому не могу сообразить как выйти из ситуации.
И ещё один момент. Необходимо сделать так, чтоб все 3 div'a были как бы связаны между собой по высоте. То есть как в таблице - если высота одной колонки меняется, меняется высота остальных. Ломал голову долго и додумался лишь поставить main - display: table, а всем col - display: table-cell (пробовал и table-row и всё остальное table-*). Не помогло . Может я вообще не в ту сторону копаю?
Буду благодарен за любую помощь и советы.
Отредактированно Kuzya (17.02.2014 21:38)
Нет на форуме
Ну вот такой пример: http://pmob.co.uk/temp/3col-sticky- … n-max2.htm решения подойдет?
Если да, то довести до поставленной задачи думаю сможете.
Нет на форуме
Большое Вам спасибо, по ссылке как раз пример который мне нужен. Кажется уже увидел в CSS-стилях решение своей проблемы Пойду пробовать.
Нет на форуме
Всё сработало! Помогло margin-right -/+ и position absolute:) Только остался один момент - я не могу понять как выравнить div'ы (col1, col2, col3) по высоте. Чтоб при изменении высоты одного менялись все остальные. Сколько в код не глядел - не смог понять
Отредактированно Kuzya (18.02.2014 18:33)
Нет на форуме
Всё, разобрался. Выставил всем div'ам-колонкам height 100%, а body и основному div'у - забыл
Осталась последняя проблема. Из-за чего-то в основном div'е текст показывается не полностью. Хоть и у него выставлена высота 100%, часть текста (если его много) уходит как бы в никуда. Как будто div, содержащий текст, чем-то сдерживается по высоте. Если я ставлю heght: 105% то текст видно полностью. Увеличиваю количество текста - он снова уходит вниз и его не видно. Чтоб его увидеть приходится ставить height: 110% и т.д. Если ставлю height: auto, то всё перекашивает
Наверное тут без кода не разобраться, поэтому прикладываю ссылку на html-страничку + css-файл.
http://slil.ru/28674033
Буду очень благодарен за помощь в решении этой проблемы т.к. от окончания вёрстки меня удерживает лишь она.
P.S. Я конечно могу ошибаться, но мне почему-то кажется что эта проблема связана с position: absolute или неправильно выставленным z-index
UPD: Если div'у, содержащему основной контент, ставить overflow: auto, то в нём появляется полоса прокрутки и можно увидеть весь текст прокручивая её. Если ставить overflow: visible - ничего не меняется
Отредактированно Kuzya (19.02.2014 08:51)
Нет на форуме
Проблема решена благодаря JS
Вместо height:100% у основных элементов я поставил min-height:100% . Тут же все div'ы вытянулись в размер своих данных - боковые стали маленькими, а средний большим. Затем в конец страницы я добавил код
var col1 = document.getElementById('col1'); var col2 = document.getElementById('col2'); var col3 = document.getElementById('col3'); if( col2.offsetHeight
и всё стало как нужно
Нет на форуме