提问人:ptrcao 提问时间:8/25/2018 最后编辑:dippasptrcao 更新时间:8/26/2018 访问量:140
HTML/CSS 嵌套左边框:重复视觉效果
HTML/CSS nested left border: reiterative visual effect
问:
我追求 HTML 列表上的这种嵌套效果。请注意,对于列表的每个嵌套级别,左边框如何侵占一个步骤:border-left
严格来说,更像是这样,列出的术语和项目符号之间没有太大的差距:
下面是一个最小的示例:
<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 中实现嵌套左边距效果?编辑:这必须适用于无限数量的嵌套级别。
答:
1赞
Salvatore
8/25/2018
#1
您可以使用左边框
样式来实现您想要的内容。
编辑 - 在评论中回答 OP 的问题
1)获取带边框的无限嵌套列表
添加上述样式,该样式将分别针对父级和所有子级 ul,以提供左边框。ul
ul {
border-left: 20px solid #000;
}
由于向父元素添加边框也会增加子元素的边框。如果您没有不同的边框,这应该没问题。
2) 获取列表的自定义边框 -
基本上,我删除了列表的所有填充,即 然后将 和 另一个添加到 .ul
20px
border-left
parent list
20px
border-left
child list
对于一个过程是相同的,如果你给它 类名 -> ,css 将看起来像 -grand-child
ul
ul
grand-child
ul.grandchild li {
border-left: 30px solid #000;
}
父
级和子
级的工作
片段如下 -
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>
P.S. 向父元素添加边框会增加子元素的边框,无论如何您都必须理解。
评论
0赞
ptrcao
8/25/2018
有没有办法为无限数量的嵌套级别执行此操作,而无需为每个嵌套级别提供显式类?
1赞
Salvatore
8/26/2018
我已经更新了我的帖子以满足您的条件@ptrcao。我希望它有所帮助!
0赞
Salvatore
8/27/2018
@ptrcao 别忘了接受答案。祝您编码愉快!
评论