得到那些有子孩子的李

问题描述 投票:2回答:2

如何让那些有孩子liul。我想将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.
html css html5 css3 css-selectors
2个回答
2
投票

你实际上非常接近。诀窍是简单地设计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.

2
投票

你不能这样做,因为在CSS中,你没有父选择器。

例如,你不能做这样的事情:

ul < li { color: #ddd; }

甚至是这样的:

ul:has(li) { color: #ddd; }

这是因为如果你有这样的parent selector,会有很多性能问题,例如重新渲染页面。这就是W3C人员没有添加父选择器工具的原因。

看这里阅读更多内容:

Is there a CSS parent selector?

Parent selectors in CSS

© www.soinside.com 2019 - 2024. All rights reserved.