Поднимите нижний колонтитул внизу страницы с переменной высотой [dубликат]

Нет, нет.

240
задан Bill the Lizard 21 October 2009 в 01:22
поделиться

21 ответ

Чтобы получить липкий нижний колонтитул:

  1. У вас есть & lt; div & gt; с class = "wrapper" для вашего контента. [ ! d9]
  2. Перед закрытием & lt; / div & gt; обертки поместите & lt; div class = "push" & gt; & lt; /
  3. Сразу после закрытия & lt; / div & gt; обертки поместите & lt; div class = «нижний колонтитул» & gt; & lt; / div & gt; .
  * {margin: 0;  } html, body {height: 100%;  } .wrapper {min-height: 100%;  высота: auto! important;  высота: 100%;  margin: 0 auto -142px;  / * нижний край - отрицательное значение высоты нижнего колонтитула * /} .footer, .push {height: 142px;  / * .push должна быть той же высоты, что и .footer * /}  
188
ответ дан TylerH 15 August 2018 в 20:08
поделиться
  • 1
    Он не работает в asp.net с & lt; form & gt; тег – jlp 28 February 2010 в 13:59
  • 2
    @jlp: вам нужно добавить тег формы в команду height: 100%, иначе он сломает липкий нижний колонтитул. Например: html, body, form {height: 100%;} – dazbradbury 9 March 2012 в 15:21
  • 3
    Я заметил, что добавление прокладки в нижний колонтитул прикручивает его, но выяснил, что это можно зафиксировать, вычитая дополнительную прокладку на нижнем колонтитуле из высоты {footer, push}. – nicooga 20 October 2012 в 08:13
  • 4
    Подробное объяснение с демонстрацией представлено на этом сайте: CSS Sticky Footer – mohitp 22 March 2013 в 11:15
  • 5
    @Syk Я обнаружил, что уменьшение минимальной высоты помогает. 94% - хорошее значение, но вы все еще видите проблему на мобильном телефоне: (Не уверен, что здесь есть реальное решение. – ACK_stoverflow 16 November 2016 в 07:14

CSS:

  #container {width: 100%;  высота: 100vh;  } # container.footer {float: left;  ширина: 100%;  высота: 20vh;  Запас-топ: 80vh;  фон-цвет: красный;  }  

HTML:

  & lt; div id = "container" & gt;  & lt; div class = "footer" & gt;  & Lt; / дел & GT;  & Lt; / дел & GT;   

Это должно сделать трюк, если вы ищете отзывчивый нижний колонтитул, выровненный в нижней части страницы, который всегда держит верхний край 80% высоты окна просмотра.

1
ответ дан Ajith 15 August 2018 в 20:08
поделиться

jQuery CROSS BROWSER CUSTOM PLUGIN - $ .footerBottom ()

Или используйте jQuery, как я, и установите высоту нижнего колонтитула auto или fix , что бы вы ни хотели, он все равно будет работать. этот плагин использует селектора jQuery, чтобы заставить его работать, вам нужно будет включить библиотеку jQuery в ваш файл.

Вот как вы запускаете плагин. Импортируйте jQuery, скопируйте код этого настраиваемого плагина jQuery и импортируйте его после импорта jQuery! Это очень простой и простой, но важный.

Когда вы это сделаете, все, что вам нужно сделать, это запустить этот код:

  $. footerBottom ({target: "footer"});  // как html5 tag & lt; footer & gt ;.  // Вы можете изменить его на ваш предпочтительный «div», например, на класс «footer» //, установив цель в {target: «div.footer»}  

, нет необходимости поместите его внутри события готовности документа. Он будет работать хорошо, как есть. Он будет пересчитывать положение нижнего колонтитула при загрузке страницы и при изменении размера окна.

Вот код плагина, который вам не нужно понимать. Просто знайте, как его реализовать. Это делает для вас работу. Однако, если вам нравится знать, как это работает, просто просмотрите код. Я оставлял комментарии для вас.

  // импортировать библиотеку jQuery перед этим скриптом  

// Импортировать библиотеку jQuery перед этим скриптом / / Наш пользовательский плагин jQuery (функция ($) {$ .footerBottom = function (options) {// Или используйте «$ .fn.footerBottom» или «$ .footerBottom», чтобы вызывать его глобально напрямую из $ .footerBottom (); var defaults = {target: "footer", container: "html", innercontainer: "body", css: {footer: {position: "absolute", left: 0, bottom: 0,}, html: {position: "relative ", minHeight:" 100% "}}}; options = $ .extend (defaults, options); // JUST SET НЕКОТОРЫЕ CSS, ОПРЕДЕЛЕННЫЕ В НАСТРОЙКАХ ПО УМОЛЧАНИЮ ВЫШЕ $ (options.target) .css ({" position ": options .css.footer.position, "left": options.css.footer.left, "bottom": options.css.footer.bottom,}); $ (options.container) .css ({"position": options. css.html.position, "min-height": options.css.html.minHeight,}); function logic () {var footerOuterHeight = $ (options.target) .outerHeight (); // Получает верхнюю высоту нижнего колонтитула $ ( options.innerco ntainer) .css ('padding-bottom', footerOuterHeight + "px"); // Устанавливаем прописку, равную высоте нижнего колонтитула для элемента body $ (options.target) .css ('height', footerOuterHeight + "! Important"); // Устанавливаем externalHeight элемента footer для ... footer console.log («jQ custom plugin footerBottom run»); // Отображение текста в консоли, поэтому вы можете проверить, что он работает в вашем браузере. Удалите его, если хотите. }; // ОПРЕДЕЛЕНИЕ ПРИ РАБОТЕ ФУНКЦИИ $ (window) .on ('load resize', function () {// Запуск на странице, загруженный и по логике ();); // ВОЗВРАТЬ ОБЪЕКТ ДЛЯ СЕТИ, ЕСЛИ НУЖНО - ЕСЛИ НЕ УДАЛИТЬ // return this.each (function () {// this.checked = true; //}); // возвращаем это; }; }) (Jquery); // Конец плагина // ИСПОЛЬЗОВАНИЕ ПРИМЕР $ .footerBottom (); // Запускаем наш плагин со всеми настройками по умолчанию для HTML5 / * Установите нижний колонтитул CSS в любое удобное для него время. * / Footer {box-sizing: border-box; высота: авто; ширина: 100%; padding: 30px 0; background-color: black; белый цвет; } & lt; script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" & gt; & lt; / script & gt; & lt;! - Структура не имеет большого значения, у вас всегда будет тег html и body, поэтому просто не забудьте указать на нижний колонтитул по мере необходимости, если вы используете html5, так как он просто не должен запускать плагин без настроек. будет работать по умолчанию с помощью & lt; footer & gt; html5 tag - & gt; & Л; тело & GT; & lt; div class = "content" & gt; & Lt; & заголовок GT; & Lt; нав & GT; & Lt; & уль GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; & Li GT; ссылка & л; / & Li GT; & Lt; / мкл & GT; & Lt; / нав & GT; & Lt; / заголовка & GT; & Lt; & секции GT; & Lt; р & GT; & Lt; / р & GT; & lt; p & gt; Lorem ipsum ... & lt; / p & gt; & Lt; / раздел & GT; & Lt; / дел & GT; & Lt; & сноска GT; & lt; p & gt; Copyright 2009 Ваше имя & lt; / p & gt; & lt; p & gt; Copyright 2009 Ваше имя & lt; / p & gt; & lt; p & gt; Copyright 2009 Ваше имя & lt; / p & gt; & lt; / footer & gt;

0
ответ дан Antoine 15 August 2018 в 20:08
поделиться
  • 1
    Ванильный java-скрипт менее длинный, чем плагин. – Ravinder Payal 4 March 2017 в 19:31

Я сам иногда с этим боролся, и я всегда находил, что решение со всеми этими div внутри друг друга было беспорядочным решением. Я немного испортил его, и я лично узнал, что это работает, и это, безусловно, один из самых простых способов:

  html {position: relative;  } html, body {margin: 0;  заполнение: 0;  мин-высота: 100%;  } footer {position: absolute;  bottom: 0;  }  

Что мне нравится в этом, так это то, что дополнительный HTML не должен применяться. Вы можете просто добавить этот CSS, а затем написать свой HTML как всегда

1
ответ дан Daniel Alsaker 15 August 2018 в 20:08
поделиться
  • 1
    Это сработало, но я добавил ширину: 100% к нижнему колонтитулу. – Victor.Uduak 22 February 2018 в 03:26
67
ответ дан Danield 15 August 2018 в 20:08
поделиться

Вы можете использовать position: absolute , чтобы поместить нижний колонтитул в нижней части страницы, но затем убедитесь, что ваши 2 столбца имеют соответствующий край внизу , так что они никогда не закрываются нижним колонтитулом.

  #footer {position: absolute;  bottom: 0px;  ширина: 100%;  } #content, #sidebar {margin-bottom: 5em;  }  
31
ответ дан Druzion 15 August 2018 в 20:08
поделиться
  • 1
    Я пробовал это с моей аналогичной настройкой (два столбца + нижний колонтитул), и это не работает. – isomorphismes 15 March 2012 в 08:44
  • 2
    каким образом это не работает? – Jimmy 15 March 2012 в 19:18
  • 3
    Он перекрывается с контентом, если контент растет. – Satya Prakash 17 October 2013 в 16:03
  • 4
    поэтому контент имеет крайность. вы должны установить его на любую фиксированную высоту, которую вы делаете в нижнем колонтитуле. – Jimmy 17 October 2013 в 19:06
  • 5
    Это очень хорошо работает с HTML 5 – Girish Kumar Kaitholil 17 January 2016 в 18:37

Одним из решений было бы установить минимальную высоту для полей. К сожалению, кажется, что это не очень хорошо поддерживается IE (сюрприз).

1
ответ дан Grey Panther 15 August 2018 в 20:08
поделиться

Для этого вопроса многие из ответов, которые я видел, неуклюжи, сложны в реализации и неэффективны, поэтому я подумал, что сделаю это, и придумаю мое собственное решение, которое представляет собой всего лишь крошечный бит css и html [ ! d4]

html, body {высота: 100%; margin: 0; } .body {min-height: calc (100% - 2rem); ширина: 100%; background-color: серый; } .footer {height: 2rem; ширина: 100%; background-color: желтый; } & lt; body & gt; & lt; div class = "body" & gt; тест как тело & lt; / div & gt; & lt; div class = "footer" & gt; test как нижний колонтитул & lt; / div & gt; & lt; / body & gt;

, это работает, устанавливая высоту нижнего колонтитула, а затем используя css calc для определения минимальной высоты страницы с нижним колонтитулом, находящимся на внизу, надеюсь, это поможет некоторым людям:)

1
ответ дан jjr2000 15 August 2018 в 20:08
поделиться

Попробуйте положить контейнер div (с переполнением: автоматически) вокруг содержимого и боковой панели.

Если это не работает, у вас есть скриншоты или ссылки на примеры, где нижний колонтитул не отображается правильно ?

1
ответ дан John Sheehan 15 August 2018 в 20:08
поделиться

Для меня самый лучший способ его отображения (нижний колонтитул) прилипает к дну, но не покрывает контент все время:

  #my_footer {position: static fixed;  bottom: 0}  
0
ответ дан juan Isaza 15 August 2018 в 20:08
поделиться

Несколько человек поставили ответ на эту простую проблему здесь, но мне нужно добавить одну вещь, учитывая, насколько я расстроен, пока не понял, что я делаю неправильно.

Как уже упоминалось, большинство простой способ сделать это так.

  html {position: relative;  мин-высота: 100%;  } body {background-color: transparent;  позиция: статическая;  высота: 100%;  margin-bottom: 30px;  } .site-footer {position: absolute;  высота: 30 пикселей;  bottom: 0px;  left: 0px;  right: 0px;  }  

Однако свойство, не упоминаемое в сообщениях, по-видимому, потому, что оно обычно является по умолчанию, является позицией: static в теге body. Позиция относительная не будет работать!

Моя тема Wordpress переопределила отображение тела по умолчанию, и это смутило меня в течение долгого времени.

0
ответ дан Kyle Zimmer 15 August 2018 в 20:08
поделиться

Мне не повезло с решениями, предлагаемыми на этой странице раньше, но потом, наконец, этот небольшой трюк сработал. Я включу его в другое возможное решение.

  footer {position: fixed;  право: 0;  bottom: 0;  left: 0;  обивка: 1rem;  background-color: #efefef;  text-align: center;  }  
0
ответ дан Laughing Horse 15 August 2018 в 20:08
поделиться

Установите CSS для #footer :

  position: absolute;  bottom: 0;   

Затем вам нужно будет добавить поле padding или в нижней части вашего #sidebar и #content , чтобы соответствовать высоте #footer , или когда они перекрываются, #footer покроет их.

Также , если я правильно помню, IE6 имеет проблему с дном : 0 CSS. Возможно, вам придется использовать JS-решение для IE6 (если вам небезразличен IE6).

11
ответ дан Linus Caldwell 15 August 2018 в 20:08
поделиться
  • 1
    когда окно слишком мало, нижний колонтитул отображается перед содержимым с помощью этого css. – Seichi 9 March 2015 в 21:49

Ни один из этих чистых css-решений не работает корректно с динамическим изменением размера контента (по крайней мере, в Firefox и Safari), например, если у вас есть фоновый набор на контейнере div, страница и затем изменить размер (добавление нескольких строк) таблицы внутри div, таблица может торчать из нижней части стилизованной области, т. е. вы можете иметь половину стола в белом на черной теме, а половину стола - белую, так как цвет шрифта и цвет фона белый.

Вложенная разметка в нескольких столбцах - это уродливый взломать, а верхний куб / контейнер на 100% минимального размера для прикрепления нижнего колонтитула - это уродливый хак.

Единственное не-скриптовое решение, которое работает во всех браузерах, которые я пробовал: гораздо более простая / короткая таблица с темой (для заголовка) / tfoot (для нижнего колонтитула) / tbody (td для любого количества столбцов) и высотой 100%. Но это восприняло семантические и SEO-недостатки (tfoot должен появиться перед телом. Роли ARIA могут помочь достойным поисковым системам, хотя).

1
ответ дан obecalp 15 August 2018 в 20:08
поделиться

Используйте абсолютное позиционирование и z-index для создания липкого нижнего колонтитула с любым разрешением, используя следующие шаги:

  • Создайте нижний колонтитул с position: absolute; bottom: 0; и желаемая высота
  • Установите дополнение нижнего колонтитула, чтобы добавить пробел между нижней частью содержимого и нижней частью окна
  • Создать контейнер div , который обертывает содержимое тела с помощью позиции : relative; min-height: 100%;
  • Добавить нижнее дополнение к основному содержимому div , равное высоте и дополнению нижнего колонтитула
  • Установите нижний колонтитул z [] d4] больше, чем контейнер div , если нижний колонтитул обрезается

Вот пример: [ ! d15]

& lt;! doctype html & gt; & Lt; & HTML GT; & Lt; & головка GT; & lt; title & gt; Липкий нижний колонтитул & lt; / title & gt; & lt; meta charset = "utf-8" & gt; & Lt; & стиль GT; .wrapper {position: relative; мин-высота: 100%; } .footer {position: absolute; внизу: 0; ширина: 100%; высота: 200 пикселей; padding-top: 100px; background-color: серый; } .column {height: 2000px; padding-bottom: 300px; фон-цвет: зеленый; } / * Установите `html`,` body` и container `div` в` height: 100% `для IE6 * / & lt; / style & gt; & Lt; / головка & GT; & Л; тело & GT; & lt; div class = "wrapper" & gt; & lt; div class = "column" & gt; & Lt; & диапазона GT; Привет & л; / & продолжительность GT; & Lt; / дел & GT; & lt; div class = "footer" & gt; & lt; p & gt; Это испытание. Это всего лишь тест ... & lt; / p & gt; & Lt; / дел & GT; & Lt; / дел & GT; & Lt; / тело & GT; & lt; / html & gt;

2
ответ дан Paul Sweatte 15 August 2018 в 20:08
поделиться

Я создал очень простую библиотеку https://github.com/ravinderpayal/FooterJS

Это очень просто в использовании. После включения библиотеки просто позвоните в эту строку кода.

  footer.init (document.getElementById ("ID_OF_ELEMENT_CONTAINING_FOOTER"));   

Нижние колонтитулы могут быть динамически изменены путем вызова вышеуказанной функции с помощью другого параметра / id.

  footer.init (document.getElementById ("ID_OF_ANOTHER_ELEMENT_CONTAINING_FOOTER"));   

Примечание: - Вы не должны изменять или добавлять CSS. Библиотека динамична, что подразумевает, что даже если размер экрана будет изменен после загрузки страницы, он сбросит положение нижнего колонтитула. Я создал эту библиотеку, потому что CSS решает проблему некоторое время, но когда размер отображения значительно меняется, с рабочего стола на планшет или наоборот, они либо перекрывают содержимое, либо больше не остаются липкими.

Другое решение - это CSS Media Queries, но вам приходится вручную писать разные стили CSS для разных размеров экранов, в то время как эта библиотека выполняет свою работу автоматически и поддерживается всеми базовыми браузерами, поддерживающими JavaScript.

Редактирование решения CSS:

  @media только экран и (min-height: 768px) {/ * или высота / длина содержимого тела, включая нижний колонтитул * / / * Для мобильных телефонов: * / #footer {width: 100%;  Положение: фиксированный;  внизу: 0;  }}  

Теперь, если высота отображения больше, чем длина вашего содержимого, мы сделаем нижний колонтитул фиксированным снизу, а если нет, он автоматически появится в самом конце дисплея по мере необходимости чтобы просмотреть это.

И это кажется лучшим решением, чем JavaScript / library.

0
ответ дан Ravinder Payal 15 August 2018 в 20:08
поделиться

Решение Flexbox

Схема Flex предпочтительна для естественной высоты заголовка и нижнего колонтитула. Это гибкое решение проверено в современных браузерах и фактически работает :) в IE11.

См. JS Fiddle .

HTML

  & Lt; & тела GT;  & Lt; & заголовок GT;  ... & lt; / header & gt;  & Л; Основной & GT;  ... & lt; / main & gt;  & Lt; & сноска GT;  ... & lt; / footer & gt;  & Lt; / тело & GT;   

CSS

  html {height: 100%;  } тело {высота: 100%;  min-height: 100vh;  overflow-y: auto;  -webkit-overflow-scrolling: touch;  margin: 0;  дисплей: flex;  flex-direction: column;  } main {flex-grow: 1;  flex-shrink: 0;  } header, footer {flex: none;  }  
0
ответ дан Reggie Pinkham 15 August 2018 в 20:08
поделиться

Вот решение с jQuery, которое работает как шарм. Он проверяет, больше ли высота окна больше высоты тела. Если это так, то он меняет верхний край нижнего колонтитула для компенсации. Тестирование в Firefox, Chrome, Safari и Opera.

  $ (function () {var height_diff = $ (window) .height () - $ ('body') .height (); if  (height_diff & gt; 0) {$ ('#footer') .css ('margin-top', height_diff);}});   

Если ваш нижний колонтитул уже имеет верхний край (например, 50 пикселей), вам нужно будет изменить последнюю часть для:

  css (  'margin-top', height_diff + 50)  
13
ответ дан Sophivorus 15 August 2018 в 20:08
поделиться

Аналогичное решение для @gcedo , но без необходимости добавления промежуточного содержимого, чтобы подтолкнуть нижний колонтитул. Мы можем просто добавить margin-top: auto в нижний колонтитул, и он будет сдвинут в нижнюю часть страницы независимо от его высоты или высоты содержимого выше.

body {дисплей: flex; flex-direction: column; min-height: 100vh; Маржа: 0; } .content {padding: 50px; фон: красный; } .footer {margin-top: auto; обивка: 10px; фон: зеленый; } & lt; div class = "content" & gt; некоторый контент здесь & lt; / div & gt; & lt; footer class = "footer" & gt; некоторый контент & lt; / footer & gt;

2
ответ дан Temani Afif 15 August 2018 в 20:08
поделиться
  • 1
    Другим подходом было бы дать .content flex: 1 0 auto; сделать его растёт и не сглаживать, но margin-top: auto; - это хороший трюк, который включает в себя нижний колонтитул стиля, а не «несвязанный». .content , что приятно. На самом деле, мне интересно, почему Flex необходим в этом подходе. – YakovL 22 April 2018 в 21:36
  • 2
    @YakovL да, основная идея здесь заключается в трюке с маркой;) Я знаю, что могу сделать контент таким, но он будет почти таким же, как предыдущий ответ, когда идея состоит в том, чтобы подтолкнуть нижний колонтитул контентом ... и здесь я хотел избежать этого и толкнуть нижний колонтитул только с краем;) – Temani Afif 22 April 2018 в 21:39
  • 3
    @YakovL flex необходим для поля: auto :) мы не можем использовать его без него ... в качестве поля: auto ведет себя немного иначе с помощью гибкого элемента, а затем блокирует элементы. Если вы удалите дисплей: flex , это не сработает, у вас будет нормальный поток элемента элемента – Temani Afif 22 April 2018 в 21:41
  • 4
    Да, я вижу, что это не сработает без него, но я не понимаю, почему (что «немного отличается») – YakovL 22 April 2018 в 21:53
  • 5
    @YakovL это просто, используя обычный блок-элемент, поток всегда является строковым направлением, поэтому будет работать только маржа справа / слева, используемая с авто (например, знаменитый маркер : 0 auto до элемента центрального блока). НО мы надеваем 't имеет любое направление столбца, так что нет маржирования auto с верхним / нижним. Flexbox имеет направление строки / столбца;). Это небольшая разница, но маржа также используется в flexbox для выравнивания элемента, поэтому даже в пределах направления строки вы можете использовать маркерный верх / нижний авто для выравнивания по вертикали. Вы можете прочитать здесь: w3.org/TR / CSS-Flexbox-1 / # авто-поле – Temani Afif 22 April 2018 в 21:59

Старый поток, который я знаю, но если вы ищете отзывчивое решение, это дополнение jQuery поможет:

  $ (window) .on ('resize', sticky);  $ (document) .bind ("ready", function () {sticky ();});  function sticky () {var fh = $ ("footer"). externalHeight ();  $ ("# push"). css ({'height': fh});  $ ("# wrapper"). css ({'margin-bottom': -fh});  }  

Полное руководство можно найти здесь: https://pixeldesigns.co.uk/blog/responsive-jquery-sticky-footer/

0
ответ дан user1235285 15 August 2018 в 20:08
поделиться

Липкий нижний колонтитул с дисплеем : flex

Решение, вдохновленное липким нижним колонтитулом Филиппа Уолтона .

Объяснение

Это решение допустимо только для :

  • Chrome ≥ 21.0
  • Firefox ≥ 20.0
  • Internet Explorer ≥ 10
  • Safari ≥ 6.1

Он основан на дисплее flex , используя свойство flex-grow , которое позволяет элементу расти как по высоте, так и по ширине (когда направление потока установлено либо ] column или row соответственно), чтобы занять дополнительное пространство в контейнере.

Мы также будем использовать модуль vh , где 1vh - , определенный как :

1 / 100th высоты окна просмотра

Поэтому высота 100vh - это краткое описание того, как элемент должен охватывать всю высоту видового экрана.

Вот как вы бы структурировали свою веб-страницу:

  ----------- тело ----------- ----------------------  ------ ---------- нижний колонтитул ---------- -----------  -----------------  

Для того, чтобы нижний колонтитул касался нижней части страницы, вам нужно пространство между телом и

Поэтому наш макет будет выглядеть следующим образом:

  --------  --- body ----------- ---------------------------- -------  --- spacer ---------- & lt; - Этот элемент должен расти в высоту ---------------------------  - ---------- нижний колонтитул ---------- ----------------------------   

Реализация

body {margin: 0; дисплей: flex; flex-direction: column; min-height: 100vh; } .spacer {flex: 1; } / * сделать его видимым для целей демонстрации * / .footer {height: 50px; background-color: red; } & lt; body & gt; & lt; div class = "content" & gt; Hello World! & lt; / div & gt; & lt; div class = "spacer" & gt; & lt; / div & gt; & lt; footer class = "footer" & gt; & lt; / footer & gt; & lt; / body & gt;

Вы можете сыграть с ним в JSFiddle .

Призраки Safari

Имейте в виду, что Safari имеет ошибочную реализацию свойства flex-shrink , который позволяет деталям сжиматься больше минимальной высоты, необходимой для отображения содержимого. Чтобы исправить эту проблему, вам необходимо будет установить свойство flex-shrink явно в 0 в .content и нижний колонтитул в приведенном выше примере:

  .content {flex-shrink: 0;  } .footer {flex-shrink: 0;  }  
37
ответ дан YakovL 15 August 2018 в 20:08
поделиться
  • 1
    Я считаю, что это правильный ответ, поскольку на самом деле это единственный подход, который работает, даже когда высота нижнего колонтитула неизвестна. – fstanis 21 August 2016 в 00:19
  • 2
    Я прошу OP принять это как ответ. Это единственное не-хакерское и общее решение. Из-за того, что другие ответы были сильно завышены, пользователи часто пропускают этот ответ, а позже сожалеют - из первых рук. :) – Sonu Mishra 14 August 2017 в 07:04
  • 3
    Это испортит сетку с помощью Neat 2 – Halfacht 16 March 2018 в 13:13
  • 4
    Но почему не решение самого Филиппа Уолтона, почему дополнительный «спейсер» элемент? – YakovL 19 April 2018 в 23:04
  • 5