如何让background color
在没有width:100%
<ul>
<li style="background-color:#33FF33">11
<ul>
<li style="background-color:#CC3333">22
<ul>
<li style="background-color:#336633">33 </li>
</ul>
</li>
</ul>
</li>
</ul>
这就是我想要实现的目标
答案 0 :(得分:1)
这可以通过使用text-indent
来实现
警告:文本缩进不能很好地继承,因此您必须为每个级别的嵌套列表项添加不同的文本缩进。
ul, li {padding-left:0; margin-left:0; list-style: none}
li li {text-indent:2.5em}
li li li {text-indent:5em}
li li li li {text-indent:7.5em} /* and so on, how many levels you need */
&#13;
<ul>
<li style="background-color:#33FF33">11
<ul>
<li style="background-color:#CC3333">22
<ul>
<li style="background-color:#336633">33 </li>
</ul>
</li>
</ul>
</li>
</ul>
&#13;
答案 1 :(得分:1)
您可以使用CSS text-indent
属性在元素文本中进行缩进。但是,如果您不想使用它,可以使用jquery .wrap()
将div
包裹在li
的文本周围,并为margin-left
设置div
$("li").each(function(i){
$(this).contents().eq(0).wrap("<div/>");
$(this).find("div").css("margin-left", i * 40);
});
&#13;
ul {
padding: 0px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li style="background-color:#33FF33">11
<ul>
<li style="background-color:#CC3333">22
<ul>
<li style="background-color:#336633">33 </li>
</ul>
</li>
</ul>
</li>
</ul>
&#13;