HTML- CSS;为层次结构中的每个下一个嵌套 ul li 添加 5px 到 margin-left
HTML- CSS; add 5px to margin-left for every next nested ul li in hierarchy
我有嵌套的ul-->li树,我要的是set nested ul padding: 0;保证金:0 0 0 0;然后将 margin-left:5px 给它的父级 ul 边距。例如,在第 1 层,ul 是 margin-left:0px,那么第 2 层的嵌套 ul 将是(parent ul margin + 5px),这将是 0+5 = 5px;对于第 3 层的嵌套 ul 将是 (5px + 5xp) = 10px;
我更愿意通过 css 实现此目标,否则 jquery
https://jsfiddle.net/vr84pd6u/7/
html
<div>
<ul class="tree">
<li><a>System Administration</a></li>
<li><a>System Core</a>
<ul>
<li><a>f2</a></li>
<li><a>f3</a>
<ul>
<li><a>f4</a></li>
<li><a>f5</a></li>
<li><a>f6</a></li>
</ul>
</li>
<li><a>f7</a>
<ul>
<li><a>f8</a>
<ul>
<li><a>f10</a>
<ul>
<li><a>f11</a></li>
</ul>
</li>
</ul>
</li>
<li><a>f9</a></li>
</ul>
</li>
</ul>
</li>
<li><a>MyFunctionA</a>
<ul>
<li><a>f12</a>
<ul>
<li><a>f13</a></li>
<li><a>f14</a></li>
</ul>
</li>
<li><a>f16</a></li>
</ul>
</li>
<li><a>Course Management</a></li>
</ul>
</div>
css
.tree ul li ul {
border-left: 1px solid #D9DADB;
background-color: limegreen;
padding: 0;
margin: 0 0 0 0;
}
添加以下规则应该会产生您想要的效果:
/*Level 1*/
.tree > li > ul {
margin: 0;
padding: 0;
}
/*All other levels*/
.tree > li > ul ul {
margin: 0 0 0 5px;
padding: 0;
}
.tree > li > ul
将规则应用于 ul
,这些规则是 直接 li
的后代,li
本身是 .tree
的直接后代。 .tree > li > ul ul
获取第一层 ul
.
的所有 ul
后代
.tree
中的每个 ul
与另一个 ul
的 children 将获得 5px
左边距,因为每个 ul
是另一个 ul
的 child 这个边距实际上将被堆叠。
.tree ul li ul {
border-left: 1px solid #D9DADB;
background-color: limegreen;
}
/*Level 1*/
.tree > li > ul {
margin: 0;
padding: 0;
}
/*All other levels*/
.tree > li > ul ul {
margin: 0 0 0 5px;
padding: 0;
}
<div>
<ul class="tree">
<li><a>System Administration</a></li>
<li><a>System Core</a>
<ul>
<li><a>f2</a></li>
<li><a>f3</a>
<ul>
<li><a>f4</a></li>
<li><a>f5</a></li>
<li><a>f6</a></li>
</ul>
</li>
<li><a>f7</a>
<ul>
<li><a>f8</a>
<ul>
<li><a>f10</a>
<ul>
<li><a>f11</a></li>
</ul>
</li>
</ul>
</li>
<li><a>f9</a></li>
</ul>
</li>
</ul>
</li>
<li><a>MyFunctionA</a>
<ul>
<li><a>f12</a>
<ul>
<li><a>f13</a></li>
<li><a>f14</a></li>
</ul>
</li>
<li><a>f16</a></li>
</ul>
</li>
<li><a>Course Management</a></li>
</ul>
</div>
我有嵌套的ul-->li树,我要的是set nested ul padding: 0;保证金:0 0 0 0;然后将 margin-left:5px 给它的父级 ul 边距。例如,在第 1 层,ul 是 margin-left:0px,那么第 2 层的嵌套 ul 将是(parent ul margin + 5px),这将是 0+5 = 5px;对于第 3 层的嵌套 ul 将是 (5px + 5xp) = 10px;
我更愿意通过 css 实现此目标,否则 jquery
https://jsfiddle.net/vr84pd6u/7/
html
<div>
<ul class="tree">
<li><a>System Administration</a></li>
<li><a>System Core</a>
<ul>
<li><a>f2</a></li>
<li><a>f3</a>
<ul>
<li><a>f4</a></li>
<li><a>f5</a></li>
<li><a>f6</a></li>
</ul>
</li>
<li><a>f7</a>
<ul>
<li><a>f8</a>
<ul>
<li><a>f10</a>
<ul>
<li><a>f11</a></li>
</ul>
</li>
</ul>
</li>
<li><a>f9</a></li>
</ul>
</li>
</ul>
</li>
<li><a>MyFunctionA</a>
<ul>
<li><a>f12</a>
<ul>
<li><a>f13</a></li>
<li><a>f14</a></li>
</ul>
</li>
<li><a>f16</a></li>
</ul>
</li>
<li><a>Course Management</a></li>
</ul>
</div>
css
.tree ul li ul {
border-left: 1px solid #D9DADB;
background-color: limegreen;
padding: 0;
margin: 0 0 0 0;
}
添加以下规则应该会产生您想要的效果:
/*Level 1*/
.tree > li > ul {
margin: 0;
padding: 0;
}
/*All other levels*/
.tree > li > ul ul {
margin: 0 0 0 5px;
padding: 0;
}
.tree > li > ul
将规则应用于 ul
,这些规则是 直接 li
的后代,li
本身是 .tree
的直接后代。 .tree > li > ul ul
获取第一层 ul
.
ul
后代
.tree
中的每个 ul
与另一个 ul
的 children 将获得 5px
左边距,因为每个 ul
是另一个 ul
的 child 这个边距实际上将被堆叠。
.tree ul li ul {
border-left: 1px solid #D9DADB;
background-color: limegreen;
}
/*Level 1*/
.tree > li > ul {
margin: 0;
padding: 0;
}
/*All other levels*/
.tree > li > ul ul {
margin: 0 0 0 5px;
padding: 0;
}
<div>
<ul class="tree">
<li><a>System Administration</a></li>
<li><a>System Core</a>
<ul>
<li><a>f2</a></li>
<li><a>f3</a>
<ul>
<li><a>f4</a></li>
<li><a>f5</a></li>
<li><a>f6</a></li>
</ul>
</li>
<li><a>f7</a>
<ul>
<li><a>f8</a>
<ul>
<li><a>f10</a>
<ul>
<li><a>f11</a></li>
</ul>
</li>
</ul>
</li>
<li><a>f9</a></li>
</ul>
</li>
</ul>
</li>
<li><a>MyFunctionA</a>
<ul>
<li><a>f12</a>
<ul>
<li><a>f13</a></li>
<li><a>f14</a></li>
</ul>
</li>
<li><a>f16</a></li>
</ul>
</li>
<li><a>Course Management</a></li>
</ul>
</div>