Здесь необходимо отобразить серию вложенных центрированных элементов CSS-сетки.Мы рендерим что-то вроде иерархического дерева с верхним узлом сверху, затем узлами второго уровня, узлами третьего уровня и т. Д.
Проблема в том, что более поздние уровни выходят из div отрицательно иположительные направления оси X.
Настройка overflow-x: scroll
решает проблему только для положительного направления оси X.То есть вы можете прокрутить вправо, но не влево.
Приведенный ниже пример является сильно упрощенным примером реальной проблемы, которую я пытаюсь решить.Красный элемент на 3-м уровне находится вне страницы по отрицательной оси X.Вы можете прокрутить вправо, но не влево.
Что можно сделать, чтобы все дерево и все узлы быливозможность прокрутки до?
Код следует ( Ссылка на JS Fiddle. ):
#tree {
overflow-x: scroll;
}
.flex-col {
display: flex;
flex-direction: column;
align-items: center;
}
.grid {
display: grid;
}
.content {
width: 300px;
border-radius: 5px;
background-color: blue;
color: white
}
<div id="tree" class="flex-col">
<div class="content">Content</div>
<div class="grid">
<div class="flex-col" style="grid-column: 1">
<div class="content">Content</div>
<div class="grid">
<div class="flex-col" style="grid-column: 1;">
<div class="content" style="background-color: red;">** This is off the screen **</div>
</div>
<div class="flex-col" style="grid-column: 2">
<div class="content">Content</div>
</div>
</div>
</div>
<div class="flex-col" style="grid-column: 2">
<div class="content">Content</div>
<div class="grid">
<div class="flex-col" style="grid-column: 1">
<div class="content">Content</div>
</div>
<div class="flex-col" style="grid-column: 2">
<div class="content">Content</div>
</div>
</div>
</div>
</div>
</div>