Учитывая следующую структуру DOM ...
<div id="outer-container">
<div class="side-panel"><div width="200px"/></div>
<div id="content"><!-- some content --></div>
<div class="side-panel"><div width="100px"/></div>
</div>
Со следующими правилами CSS ...
#outer-container {
display: 'flex';
align-items: 'stretch';
width: '100vw';
height: '100vh';
}
.side-panel {
flex-shrink: 0;
}
#content {
display: 'flex';
flex-direction: 'column';
align-items: 'stretch';
flexGrow: 1;
}
Как я могу наблюдать мутации в ширину / высоту #content
?
Обычно это делается путем наблюдения мутаций в атрибуте style
и проверки границ элемента (или некоторого другого варианта), когда стиль изменился. Однако, будучи гибким контейнером и потомком, я замечаю, что когда я проверяю ширину / высоту элемента, они не определяются.
Изменение размера #content
не приводит к событиям от моего MutationObserver (который использует следующую конфигурацию: {attributes: true, attributeFilter: ['style']}
)
Мой пример использования здесь - превратить боковые панели в выдвижные ящики, когда ширина #content
уменьшается ниже некоторого определенного порога. Я работаю с React
, однако это похоже на проблему с html / js.
Помощь с благодарностью!
PS: я пытался установить flex-basis
на #content
на выбранный мной порог, но это не помогло. Интересно, стоит ли мне определять width
вместо flex-basis
... однако я не уверен, приведет ли это к нежелательному поведению при изгибе.