0 / 0 / 0
Регистрация: 28.04.2015
Сообщений: 15
1

Растягивающийся блок внутри блока на всю высоту окна

28.04.2015, 15:36. Показов 2970. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть родительский блок, занимающий 100% высоты и 100% ширины окна, в нем находятся три фиксированных по высоте блока, два внизу и один наверху. Нужно чтобы оставшееся пространство занимал четвертый блок, как это можно реализовать?

Растягивающийся блок внутри блока на всю высоту окна
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2015, 15:36
Ответы с готовыми решениями:

Центральный блок должен растягиваться на всю высоту экрана, а не на высоту контента
Всем привет. Сразу к делу. Сайт делаю резиновым. Структура сайта по сути из трёх блоков. Шапка,...

Фон на всю высоту блока
Подскажите, как реализовать, чтобы фон был на всю высоту блока "article", а не на всю высоту...

Блок на всю высоту
Как делаются блоки на всю высоту? Мне нужно сделать резиновую верстку, все вроде не сложно - слева...

Добавить блок на всю высоту
Привет всем, нужно добавить блок на всю высоту. По хорошему это должен быть блок "категории". Он...

10
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
28.04.2015, 22:55 2
Раз высоты фиксированные, то можно просто абсолютным позиционированием.
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
28.04.2015, 23:16 3
eightalex, можно с помощью flexbox-а. Проверяем в песочнице.
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.parent {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background-color: #c44942;
    color: #fff;
}
.parent > div {
    outline: 1px solid #fff;
}
.parent > div:nth-child(2) {
    flex: 1 auto;
}
.parent > div:not(:nth-child(2)) {
    flex: 0 auto;
    height: 100px;
}
1
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
28.04.2015, 23:35 4
Lazy_Den, css упрощается до
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.parent {
    display: flex;
    flex-direction: column;
    height: 100vh;
    background-color: #c44942;
    color: #fff;
}
 
.parent > div {
    flex: 0 auto;
    height: 100px;
    outline: 1px solid #fff;
}
 
.parent > div:nth-child(2) {
    flex: 1 auto;
}
http://jsfiddle.net/hv87ske0/1/

Добавлено через 2 минуты
А для более точного соответствия твоему варианту:
CSS
1
2
3
4
.parent > div:nth-child(2) {
    flex: 1 auto;
    height: auto;
}
http://jsfiddle.net/hv87ske0/2/
1
Fedor92
28.04.2015, 23:35
  #5

Не по теме:

Qwertiy, интересно, чем он упростился...? :)

0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
28.04.2015, 23:36 6
Убиранием :not
0
Fedor92
28.04.2015, 23:37
  #7

Не по теме:

Qwertiy, да 3 байта однозначно перегрузят сервер...:D

0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
28.04.2015, 23:53 8
У :not производительность плохая. Ну про поддержку промолчу, потому что у flexbox'а она хуже. И вообще, зачем городить сложные селекторы, когда всё решается перестановкой простых?
0
Эксперт HTML/CSS
2964 / 2599 / 1068
Регистрация: 15.12.2012
Сообщений: 9,876
Записей в блоге: 11
29.04.2015, 00:46 9
Цитата Сообщение от Qwertiy Посмотреть сообщение
У :not производительность плохая. Ну про поддержку промолчу, потому что у flexbox'а она хуже. И вообще, зачем городить сложные селекторы, когда всё решается перестановкой простых?
Qwertiy, ну дык предложите своё решение без flexbox и сложных селекторов... Критиковать чужой подход проще всего...
Я бы например, вообще не заморачивался, задал бы четвёртому блоку height:auto или вообще не задал высоты и не парился...
0
833 / 641 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.04.2015, 01:03 10
Цитата Сообщение от Fedor92 Посмотреть сообщение
ну дык предложите своё решение
Я ж уже предложил: абсолютное позиционирование и 4 координаты.
0
0 / 0 / 0
Регистрация: 28.04.2015
Сообщений: 15
11.07.2015, 14:34  [ТС] 11
Lazy_Den, Qwertiy, спасибо большое вам. Все классно работало, до тех пор пока у меня не появилась необходимость поддержки старыми мобильными браузерами. По какой причине этот пример не может работать, например, в Опере Мини (даже в новой)? И как эту неприятность можно было бы исправить?

Может какие-то префиксы какие-то помогут, или придется отказаться от флексбокса? Если да, то как иначе реализовать данный пример?
0
11.07.2015, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2015, 14:34
Помогаю со студенческими работами здесь

Растянуть блок на всю высоту
Имеется блок див, который должен быть: Растянут на всю высоту окна - 20px, если контента мало,...

Блок div на всю высоту
всем добрый вечер. есть два див блока с содержимим, и если 1 больше другого, то там где меньше...

Высота содержания Web - страницы во всю высоту окна
Здравствуйте. Во время создания Web - страницы столкнулся с проблемой: при открытие страницы все...

Блок не растягивается на всю высоту экрана
Внутри <div class="container"></div> располагается таблица, которая растягивается на всю высоту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru