如何让那些有孩子li
的ul
。我想将CSS设置为那些li
。我无法设置类,因为li
是动态打印的。当我将CSS设置为如下所以它将所有父li
设置为加号。
.ul{
width:200px;
position:relative;
}
.ul li{
position:relative;
}
.ul > li:before{
content : '+';
position: absolute;
top: 0;
right: 7px;
}
<ul class="ul">
<li>List 1</li>
<li>List 2</li>
<li>List 3
<ul>
<li>Sub List 1</li>
<li>Sub List 2</li>
<li>Sub List 3</li>
</ul>
</li>
<li>List item 4</li>
</ul>
This is style for that.
你实际上非常接近。诀窍是简单地设计ul
内的每个.ul
。然后将+
移动到您希望它出现的位置(即在父li的第一行之后)。
.ul {
width: 200px;
position: relative;
}
.ul li {
position: relative;
}
.ul ul::before {
content: '+';
position: absolute;
top: 0;
right: 7px;
}
<ul class="ul">
<li>List 1</li>
<li>List 2</li>
<li>List 3
<ul>
<li>Sub List 1</li>
<li>Sub List 2</li>
<li>Sub List 3</li>
</ul>
</li>
<li>List item 4</li>
</ul>
This is style for that.
你不能这样做,因为在CSS中,你没有父选择器。
例如,你不能做这样的事情:
ul < li { color: #ddd; }
甚至是这样的:
ul:has(li) { color: #ddd; }
这是因为如果你有这样的parent selector
,会有很多性能问题,例如重新渲染页面。这就是W3C人员没有添加父选择器工具的原因。
看这里阅读更多内容: