Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2014, 00:00
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Растянуть блок на оставшуюся высоту
Некоторое время ломаю голову над такой загадкой.
Есть фиксированная колонка (.col), содержащая два вертикальных блока. Нужно сделать так, чтоб верхний блок (.head) зависел от контента, т.е. при увеличении контента, чтоб он растягивался без появления скролла (как и должны себя вести блоки по умолчанию).
Второй блок (.bottom) по задумке дизайнера должен занимать остаток высоты. При этом, если во втором блоке находится много содержимого, должна появляться полоса прокрутки ТОЛЬКО в этом блоке, а не во всей колонке.
Как это сделать одной строчкой js, я конечно знаю. Но вызывать пересчет высоты при каждом изменении .head не очень красиво, а следить за этим блоком по setInterval тоже такое себе решение.
Я знаю также как это решить в современных браузерах с поддержкой flex.
А можно ли это сделать на css без flex?
Примерная разметка:
<div class="col">
    <div class="head">
        <div class="top1">bla</div>
        <div class="top2">bla</div>
    </div>
    <div class="bottom">
        <ul class="list">
            <li>bla</li>
            <li>bla</li>
...
            <li>bla</li>
        </ul>
    </div>
</div>


песочница здесь - если надо для решения изменить разметку, я не против.
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2014, 01:16
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

Для новых - новое, т.е. flex.
Для старых - старое, т.е. таблички.)
http://jsfiddle.net/9uq090uL/1/
Само собой можно всё оформить через display:table, по желанию.
__________________
29375, 35

Последний раз редактировалось Aetae, 21.11.2014 в 01:29.
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2014, 08:56
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Aetae,
я же пробовал через таблицу (display:table), но почему-то не вышло...
Спасибо большое!
Ответить с цитированием
  #4 (permalink)  
Старый 21.11.2014, 09:56
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от BETEPAH
я же пробовал через таблицу (display:table), но почему-то не вышло...
Придется всю структуру таблицы реализовать:
<iframe width="100%" height="300" src="http://jsfiddle.net/1859mxqm/1/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 21.11.2014, 10:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105


или я не так смотрю, или во всех примерах ie идёт лесом
Ответить с цитированием
  #6 (permalink)  
Старый 21.11.2014, 11:56
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от рони
во всех примерах ie идёт лесом
да, точно. вспомнил, почему таблицы не получились.
display: table-cell и position: relative не совместимы
Может еще какое-то решение?
Ответить с цитированием
  #7 (permalink)  
Старый 21.11.2014, 12:39
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Чет я не понял а какой цели там вообще служат position:relative для .bottom и absolute для bottom-scrollarea ?
Ответить с цитированием
  #8 (permalink)  
Старый 21.11.2014, 14:02
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

krasovsky,
без них таблица растягивается на высоту содержимого и скролл не появляется в IE. Хотя и с ними тоже не работает
Ответить с цитированием
  #9 (permalink)  
Старый 21.11.2014, 14:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от BETEPAH
display: table-cell и position: relative не совместимы
Ну добавь еще див, с height: 100%
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 21.11.2014, 15:28
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от danik.js
Ну добавь еще див, с height: 100%
IE9-10 растянут этот блок на всю высоту окна
http://jsfiddle.net/BETEPAH/2eLjyneu/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Растянуть блок на всю высоту katamason jQuery 4 08.11.2014 17:02
Копирование блоков в блок maximus Events/DOM/Window 1 14.09.2013 19:40
как скрыть блок div по ключевому слову Sacred13 Элементы интерфейса 6 06.08.2013 19:13
Как растянуть блок? Александр141 (X)HTML/CSS 2 21.05.2013 23:22
Скрыть/показать блок в зависимости от radio MBmusic Элементы интерфейса 10 08.05.2013 17:23