你可以为你的等级设置一个上界,除了第一层,然后创建一个div来代替你的brs,它被分成父级的数量,每个分区分成两部分,它们之间有边界.这几乎就是您想要的,我们还可以通过添加"之前"级别来进一步增强此解决方案,但我认为这已经是一个很好的概念验证.
.newline {
height: 30px;
width: 100%;
}
.pc-50 {
border-left: 1px solid blue;
width: 50%;
}
.newline > 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/bootstrap@5.3.2/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 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 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 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 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 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 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 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>