Я создаю «дерево» в начальной загрузке 5, это должен быть список элементов, по которым можно что-то проследить, для этого я использую начальную загрузку 5 и необработанный HTML.
У меня для этого настроен HTML, как показано ниже;
Однако я хотел бы иметь линии между ними, как показано на следующем изображении;
Я попытался создать для этого собственный CSS, но что бы я ни делал, это поставило меня в тупик, и я не могу найти ничего об этом в документации по начальной загрузке.
HTML, обеспечивающий это, выглядит следующим образом:
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<br>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>Хм, это не присоединяется к ребенку-ребенку, попробую повозиться и посмотреть, что я смогу приготовить (что звучит странно, но это дерево навыков, так что менее странно)






Вы можете иметь верхнюю границу для своих уровней, кроме первого, а затем вместо вашего brs создать div, который будет разделен на количество родителей, и каждое разделение будет разделено на два, с границами между ними. Это почти то, что вы хотели, мы можем еще улучшить это решение, добавив также уровень «до», но я думаю, что это уже хорошее подтверждение концепции.
.newline {
height: 30px;
width: 100%;
}
.pc-50 {
border-left: 1px solid blue;
width: 50%;
}
.newline:not(.lower) > div div:not(.outsider) {
border-bottom: 1px solid blue;
}
.pc-33 {
width: 33.33%;
}
.pc-20 {
width: 20%;
}
.pc-50.left {
border-left: none;
}<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet"/>
<div class = "d-flex justify-content-around first">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50 left"></div>
</div>
<div class = "d-flex pc-50">
<div class = "pc-50 left"></div>
<div class = "pc-50 left outsider"></div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50"></div>
</div>
<div class = "d-flex pc-50 left">
<div class = "pc-50 left"></div>
<div class = "pc-50 outsider"></div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50 left"></div>
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-50 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider d-flex">
<div class = "pc-50 left"></div>
<div class = "pc-50 left outsider"></div>
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50"></div>
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-50">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider d-flex left">
<div class = "pc-50 left"></div>
<div class = "pc-50 outsider"></div>
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-33 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50 left"></div>
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider d-flex">
<div class = "pc-50 left"></div>
<div class = "pc-50 left outsider"></div>
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-33 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50"></div>
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50">
</div>
<div class = "pc-50 outsider d-flex left">
<div class = "pc-50 left"></div>
<div class = "pc-50 outsider"></div>
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-20 left">
<div class = "pc-50 left outsider">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider">
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-20 left">
<div class = "pc-50 outsider left">
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider left ">
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50 left"></div>
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-50 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider d-flex">
<div class = "pc-50 left"></div>
<div class = "pc-50 left outsider"></div>
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-50 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50"></div>
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-50 left">
<div class = "pc-50">
</div>
<div class = "pc-50 outsider d-flex left ">
<div class = "pc-50 left"></div>
<div class = "pc-50 outsider"></div>
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-33 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50 left"></div>
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider d-flex">
<div class = "pc-50 left"></div>
<div class = "pc-50 left outsider"></div>
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-33 left">
<div class = "pc-50 left outsider d-flex">
<div class = "pc-50 left outsider"></div>
<div class = "pc-50"></div>
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-33 left">
<div class = "pc-50">
</div>
<div class = "pc-50 outsider d-flex left">
<div class = "pc-50 left"></div>
<div class = "pc-50 outsider"></div>
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>
<div class = "d-flex newline">
<div class = "d-flex pc-20 left">
<div class = "pc-50 left outsider">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 outsider">
</div>
</div>
</div>
<div class = "d-flex newline lower">
<div class = "d-flex pc-20 left ">
<div class = "pc-50 left outsider">
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 ">
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 left">
</div>
<div class = "pc-50 left">
</div>
</div>
<div class = "d-flex pc-20 left">
<div class = "pc-50 ">
</div>
<div class = "pc-50 left outsider">
</div>
</div>
</div>
<div class = "d-flex justify-content-around">
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
<div class = "p-2 bd-highlight border border-primary">Flex item 1</div>
</div>Ох, вот это интригует... Знаете ли вы какой-нибудь способ остановить строки, проходящие за начало первого и последнего гибких элементов в строке?
@CanO'Spam отредактировал мой ответ, убрав эти края. Если вы хотите то же самое, что и в вопросе, то вам понадобятся два уровня новой строки и нижняя граница к верхнему уровню и примените тот же шаблон (разделите экран на количество элементов и разделите каждое деление на два ). Если этот ответ решил вашу проблему, вы можете принять его как правильный ответ.
Ты абсолютный герой! Я не могу тебя отблагодарить! CSS далеко не моя сильная сторона <3
@CanO'Spam Я отредактировал фрагмент своего ответа, чтобы сделать синие линии более красивыми. Благодарность принадлежит моей жене, которая внесла улучшения, так как мне было лень их делать :)
проверьте это, возможно, вам поможет codepen.io/Pestov/pen/AvQmxv