HTML/CSS 嵌套左边框 : reiterative visual effect

标签 html css html-lists nested-lists

我正在寻找 HTML 列表上的嵌套 border-left 效果。注意列表的每一层嵌套,左边框如何侵占一步:

enter image description here

严格来说更像是这样,在列出的术语和元素符号之间没有太多差距:

enter image description here

这是一个可以玩的最小示例:

<ul style="list-style-type:none">
  <li>RPG
    <ul style="list-style-type:none">
      <li>DA</li>
      <li>Bioshock</li>
    </ul>
  </li>
  <li>MOBA
    <ul style="list-style-type:none">
      <li>DOTA</li>
      <li>LoL</li>
    </ul>
  </li>
</ul>

能否请您建议如何在 HTML/CSS 中实现嵌套的左边距效果? 编辑:这必须适用于无限的、开放式的嵌套层数。

最佳答案

您可以使用border-left 样式来实现您想要的效果。

编辑 - 在评论中回答 OP 的问题

1) To get infinity nested lists with borders

将上述样式添加到 ul 中,这将分别针对父 ul 和所有子 ul 以提供 border-left。

ul {
    border-left: 20px solid #000;
}

因为向父元素添加 border-left 也会增加子元素的边框。如果您没有变化的边框,这应该没问题。

2) To get custom borders for lists -

基本上,我删除了列表的所有填充,即 ul,然后将 20px border-left 添加到 父列表 和另一个 20px border-leftchild list

对于 grand-child ul 过程是相同的,如果你给 ul 类名 -> grand-child ,CSS 看起来像 -

ul.grandchild li {
    border-left: 30px solid #000;
}

parentchild ul 的工作片段如下 -

ul {
  list-style-position: none;
  padding-left: 0;
}


/*
for different border sizes

ul.parent li {
  border-left: 20px solid #000; 
}

ul.child li {
  border-left: 20px solid #000;
}
*/

/* for all ul's with same radius, don't need any specific class */
ul {
  border-left: 20px solid #000;
}
<ul class="parent">
  <li>RPG
    <ul class="child">
      <li>DA</li>
      <li>Bioshock</li>
      <li>
        <ul>
          <li>DA</li>
          <li>Bioshock</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>MOBA
    <ul class="child">
      <li>DOTA</li>
      <li>LoL</li>
    </ul>
  </li>
</ul>

附言将 border-left 添加到父元素会增加子元素的边框,这一点您一定已经了解了。

关于HTML/CSS 嵌套左边框 : reiterative visual effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010941/

相关文章:

html - 将 <li> 标记中的行数限制为特定数字

html - 带有 "display: table"子元素的 Microsoft Edge 上奇怪的 <li> 高度错误

包含 css 滚动条的 HTML 单元格——我怎样才能去掉填充?

jquery - 单击后滚动保持上一个链接处于事件状态

css - 在具有相对定位元素的页面上防止固定元素消失

jquery - 如果高度 > 某个数字,则添加 CSS 溢出

html - 使用 remotipart 提交带有文件输入的表单包装一个文本区域以响应

html - btn 没有在中间垂直对齐

javascript - JQuery/CSS 触发动画

html - 如何并排放置 <dt> 和 <dd> 的定义列表,但如果 <dt> 变长,则 <dd> 会向下移动?