Я пытаюсь контролировать размер элемента Tabulator на основе стиля flexbox css (http://tabulator.info/). Внутри div с заданной шириной / высотой, я хочу, чтобы поле занимало необходимое ему пространство, а таблица Tabulator заполняла остальное (по вертикали)
Следующий код работает как раз для текста, но таблиц переполните второй div:
const columns = [
{ title: 'index', field: 'index', width: 80, formatter: 'textarea' },
{ title: 'text', field: 'text', width: 80, formatter: 'textarea' },
];
const data = [
{ index: 0, text: "A" },
{ index: 1, text: "B" },
{ index: 2, text: "C" },
{ index: 3, text: "D" }
]
...
<div
style={{
width: '400px',
height: '150px',
border: '3px solid red',
padding: '5px',
display: 'flex',
flexFlow: 'column',
}}
>
<div
style={{
border: '3px solid lightblue',
}}
>
Table:
</div>
<div
style={{
border: '3px solid green',
flex: 1
}}
>
<React15Tabulator
data={data}
columns={columns}
layout={'fitColumns'}
// options={options}
index={'index'}
/>
</div>
</div>
Если вы замените элемент React15Tabulator каким-нибудь простым текстом, выделенный зеленым div заполняет оставшуюся часть вертикального пространства, как и предполагалось.
С таблицей React15Tabulator на месте, таблица не только переполняет красный контурный div, но и сам зеленый div вытягивается.
Любой способ заставить зеленый div придерживаться предполагаемых размеров (используя flex)?