2015-09-28 2 views
0

Я пытаюсь показать, что мой сайт хорошо отображается на мобильных устройствах. У меня заголовок, прикрепленный к вершине, высота 70 пикселей. У меня есть главное меню, как нижний колонтитул, закрепленный на дне с высотой 250 пикселей.Установите высоту нескольких контейнеров на оставшуюся высоту между двумя фиксированными divs

Содержание между несколькими изображениями один за другим. Я хотел бы каждого изображения, чтобы взять ровно оставшуюся высоту между «заголовком» и «нижним колонтитулом».

Мне нужно это для работы на мобильных устройствах в целом, поэтому я не хочу устанавливать высоту изображения на статическую высоту (то есть: на устройстве 320x480 я мог бы рассчитать высоту 480-70- 250 = 160 пикселей, но мне нужно, чтобы он также работал на устройстве размером 360х640 пикселей).

+0

Если у вас есть несколько снимков, и каждое изображение занимает ВСЕ оставшееся пространство между верхним и нижним колонтитулом, то ваши снимки могут быть очень высокими и очень тонкими и могут отображаться только слева направо. Это то, что вы намереваетесь сделать? В любом случае: похоже, что css flexbox может быть вашим другом: https://css-tricks.com/snippets/css/a-guide-to-flexbox/. – wintvelt

ответ

0

Вы должны смотреть вверх CSS Calc https://css-tricks.com/a-couple-of-use-cases-for-calc/, а также видовые единицы https://css-tricks.com/the-lengths-of-css/

Вы могли бы сделать что-то вроде:

height: calc(100vh - 70px - 250px) 
+0

Отлично. Я беспокоился о совместимости с браузером/устройством, но это кажется достаточным. Спасибо! – Bryden

0

Использование JQuery, установить высоту изображения, чтобы быть высота окна минус высоту заголовка и нижнего колонтитула:

$('img').height($(window).height() - 70 - 250); 

JSFiddle to demo.

+0

с тегами html и css для этого вопроса, jQuery не похоже на подходящее решение (и излишне тяжелое и сложное решение для чего-то, что может быть легко исправлено только с помощью css) – wintvelt

+0

Я сильно рассматриваю jquery, но мне очень хотелось бы решить это использование чистого css, если возможно. Я надеюсь, что jquery излишне тяжелый и сложный для этого решения, но он может оказаться лучшим решением для кросс-браузера и совместимости с другими устройствами. Спасибо за код @pgruber – Bryden