Итак, в основном вы хотите отобразить внуков как пустых детей.Вы можете сделать это с текущей разметкой с помощью display: содержимое
Caniuse:
display: contents
вызывает появление дочерних элементовкак будто они были прямыми потомками родителя элемента, игнорируя сам элемент.Это может быть полезно, когда элемент обертки следует игнорировать при использовании CSS-сетки или аналогичных методов компоновки.
.parent {
display: flex;
justify-content: space-between;
}
.parent div {
width: 30%;
height: 100px;
border: 5px solid tomato;
}
.child2 {
display: contents;
}
<div class="parent">
<div class="child1">child1</div>
<div class="child2">
<div class="grandchild1">grandchild1</div>
<div class="grandchild2">grandchild2</div>
</div>
</div>
Примечание: В настоящее время display: contents
еще не поддерживается в Edge.