У меня проблема с компоновкой компонентов Office UI Fabric, которые я использую. Это может быть или не быть специфичным для компонентов в этой среде, но я сформулирую это как общую проблему HTML / CSS с flexbox. В общем, я пытаюсь разработать макет, который имеет два компонента сетки (DetailsList), каждый в контейнере типа страницы (Pivot). Мне также нужно, чтобы заголовки ярлыков и поле поиска были закреплены сверху, а кнопка - снизу (независимо от того, насколько короток список в сетке). Если содержимое списка (ов) длинное, я хочу, чтобы в сетке были видны только полосы прокрутки, а не родительский контейнер (в противном случае вам нужно было бы прокрутить вниз, чтобы увидеть Важную кнопку).
Я могу заставить этот макет работать без Pivot, используя компонент ScrollablePane. Как это:

Однако я не могу понять, как спроектировать это так, чтобы поворотные навигаторы также оставались зафиксированными на вершине. Лучшее, что я могу сделать, это показать в этом примере на StackBlitz ( редактируемая ссылка ) или на этом снимке экрана:

Вот урезанная версия макета в том виде, в котором она есть на данный момент, со всем закрепленным и прокручиваемым должным образом, за исключением поворотов, прокручиваемых вне поля зрения при прокрутке списка:
.app-wrapper {
display: flex;
flex-direction: column;
width: 100%;
position: absolute;
top: 0;
bottom: 0;
}
.app-defaultFlex {
flex: 1;
position: relative;
}
.app-buttonContainer{
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
background: white
}
<div id='FlexTest' className='app-wrapper'>
<div className='header'>
{header}
</div>
<ScrollablePane scrollbarVisibility={ScrollbarVisibility.auto} className='app-defaultFlex'>
<Pivot>
<PivotItem id='PivotItemAllProjects' headerText="All Projects">
<DetailsList items={projectItems}/>
</PivotItem>
<PivotItem headerText="Recent" id='PivotItemRecentProjects'>
<DetailsList items={projectItems}/>
</PivotItem>
</Pivot>;
</ScrollablePane>
<div className='footer app-buttonContainer'>
<DefaultButton className='app-FileButton' primary={true} disabled={false}>File to Project</DefaultButton>
</div>
</div>
Можно ли использовать flexbox, чтобы закрепить вкладки Pivot наверху, чтобы они оставались на виду? Я пробовал несколько вариантов (см. Варианты pivot2 - pivot5 в моем примере StackBlitz), но я не могу понять, является ли это проблемой, которая может быть решена с помощью flexbox, или ограничением использования компонента ScrollablePane со встроенным шарниром.
ОБНОВЛЕНИЕ 5/28/2019:
Даже если это сводится к тому, чтобы иметь только компонент Pivot с одним PivotItem, содержащим один DetailsList, я не вижу, как может работать что-то вроде Sticky компонента или любого вида гибкого макета, согласно этому псевдокоду:
<Pivot>
<Sticky stickyPosition={StickyPositionType.Header}>
<PivotItem
id='PivotItemAllProjects'
headerText="All Projects"
>
<DetailstList>
..foo
</DetailsList>
</PivotItem>
</Sticky>
</Pivot>
Завершение каждого отдельного PivotItem не работает - ничего не отображается вообще. Кроме того, это означало бы, что мы хотим наклеить метку и это дочерний элемент. Даже упаковка PivotItem в верхний колонтитул Sticky и дочернего элемента PivotItem в нижний колонтитул Sticky не работает. Я гоняюсь за невозможным здесь?