我有一个ul
项目,其中还有2个ul
个项目。我需要格式化ul
中的第二行。
HTML
<ul class="horizontal">
<li>First List
<ul class="ul1">
<li>first</li>
<li>Second</li>
<li>Third</li>
</ul>
<li>Second List
<ul>
<li>first</li>
<li>Second</li>
<li>Third</li>
</ul>
</ul>
CSS
.horizontal >li {
float: left;
list-style: none;
margin: 10px;
}
ul:nth-child(2) {
color:RED
}
答案 0 :(得分:8)
你需要使用下面的选择器..
ul > li > ul > li:nth-of-type(2) {
color: red;
}
说明:上面的选择器意味着选择ul
元素,而不是移动并选择嵌套在li
下的直接ul
,而不是向前移动并选择直接ul
嵌套在li
,最后,我们选择嵌套在第二级li
下的第二个ul
。
此外,只有li
元素可以嵌套在ul
内作为直接子元素,您也可以使用nth-child
答案 1 :(得分:0)
Mr. Alien
是正确的,但相反,使您的CSS非常具体,您是否可以使用ul
甚至li
上的类。这将使您的CSS在将来更容易管理/覆盖。
重要的是要记住浏览器在阅读CSS并应用它时从右到左工作。
示例强>
<ul class="horizontal">
<li>First List
<ul class="ul1 nested-list">
<li>first</li>
<li class="list-item-red">Second</li>
<li>Third</li>
</ul>
</li>
<li>Second List
<ul class="nested-list">
<li>first</li>
<li class="list-item-red">Second</li>
<li>Third</li>
</ul>
</li>
</ul>
.list-item-red { color: red; }
答案 2 :(得分:0)
您的代码无效的原因是您选择的是:nth-child
UL,而不是LI。伪选择器(如:nth)可以处理当前的选择器,而不是它的子节点。这对:first-child
和:nth-child
之类的内容非常困惑,但请记住:something:is
,如a:hover