Как создать липкий нижний колонтитул внутри LeftNav?

Я пытаюсь создать липкий нижний колонтитул внутри компонента <LeftNav>, пока безуспешно. Вот как это должно выглядеть:

введите описание изображения здесь

Я пытался использовать position: fixed; bottom: 0 и position: absolute; bottom: 0 в оболочке поля поиска, но когда пользователь прокручивает элементы списка, поле поиска перемещается вверх. Как это:

введите описание изображения здесь

Есть идеи, как это исправить?


person picardo    schedule 26.02.2016    source источник
comment
Немного оффтопный вопрос: Какой инструмент вы использовали для создания мокапов экрана?   -  person Joerg    schedule 30.08.2017


Ответы (2)


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

https://jsfiddle.net/kevinlrak/r1mpf1n8/

#search {
  position: fixed;
  background-color: red;
  bottom: 0;
  width: 25%;
}
person Kevin Rak    schedule 26.02.2016

Ваш <LeftNav> должен содержать два элемента:

  • Первый содержит элементы и имеет overflow-y, установленный на auto (для прокрутки, когда слишком долго), и javascript-set height высоты панели навигации за вычетом высоты поля поиска (включая отступы!)
  • Второй - position: absolute, bottom: 0 и width: 100% и содержит (или есть) ваше поле #search.

Пример, где this.props.height устанавливается на мой window.innerHeight в событиях load и resize window:

<LeftNav>
  <div style={{overflowY: 'auto', height: (this.props.height - 50) + 'px'}}>
    {menuItems}
  </div>
  <div style={{position: 'absolute', bottom: 0, width: '100%'}}>
    {{searchField}}
  </div>
</LeftNav>
person antoine129    schedule 02.03.2016
comment
Как бы вы определили высоту поля поиска динамически вместо того, чтобы жестко кодировать ее до 50? - person philcruz; 29.10.2016