html - 用线连接 div 以表示层次结构的最佳方式是什么?

标签 html css line hierarchy


我试图找出问题的解决方案,我想到的一些解决方案是为每个子任务使用 after 伪元素,只有左边框和底部边框可见并相对定位,但这不会工作,如果我有深入多层的任务。我真的不能把每个任务都放在带边框的 div 中,因为它们会在尴尬的地方结束并且不是有效的 html。

我能想到的最佳解决方案是使用单个 div 包含所有子任务并制作一条垂直线。为了制作水平线,我会在每个子任务中使用 before 伪元素。应该没问题吧?

我正在为这个元素使用 React,每个任务都是一个 React 组件。

问题中的设计:
enter image description here

最佳答案

这是一个天真的解决方案:

      html {
        box-sizing: border-box;
      }
      *,
      *:before,
      *:after {
        box-sizing: inherit;
      }
      .cards {
        width: 800px;
        margin: 0 auto;
      }
      .card {
        width: 100%;
        background: #fff;
        background-color: #fff;
        margin: 0 0 10px 0;
        box-shadow: 0 1px 6px rgba(32, 33, 36, 0.28);
        border-radius: 8px;
        padding: 20px;
        position: relative;
        clear: both;
      }
      .parent {
        height: auto;
      }
      .child {
        float: right;

        width: 100%;
        border-left: 1px dotted #ccc;
        padding-left: 20%;
      }
      .child .card:after {
        content: '';
        width: 25%;
        border: 1px dotted #ccc;
        position: absolute;
        left: -25%;
        top: 50%;
      }
    <div class="cards">
      <div class="card">Card 1</div>
      <div class="card">Card 2</div>
      <div class="parent">
        <div class="card">Card 3</div>
        <div class="child">
          <div class="card">Child card 1 of Card 3</div>
          <div class="parent">
            <div class="card">Child card 2 of Card 3</div>
            <div class="child">
              <div class="parent">
                <div class="card">Child card 1 of Child Card 2</div>
                <div class="child">
                  <div class="card">Child card 1 of Child Card 1</div>
                </div>
              </div>
            </div>
          </div>
          <div class="card">Child card 3 of Card 3</div>
          <div class="card">Child card 4 of Card 3</div>
          <div class="card">Child card 5 of Card 3</div>
          <div class="card">Child card 6 of Card 3</div>
          <div class="card">Child card 7 of Card 3</div>
        </div>
      </div>
      <div class="card">Card 4</div>
    </div>

这里是codepen .

关于html - 用线连接 div 以表示层次结构的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345978/

相关文章:

Java-多边形和线的交点

c# - .NET 图表控件 : How to use a LineAnnotation?

css - 样式不适用于 div 下的表格

html - 使用 HUGO 从公共(public)文件夹中渲染本地 index.html 的错误

html - 图像覆盖另一个图像

html - 在 Angular4 中拆分超链接

css - 元素的条件样式

android - 用于 C/C++ 的路径线绘图图形库/引擎?

html - 在多个图像上放置文本

javascript - Nodejs 从数据库中检索信息并传递给 JavaScript