2017-06-21 57 views
0

我有这样第n个孩子的CSS目标姓氏和3个子

<ul> 
    <li>1.1</li> 
    <li>1.2</li> 
    <li>1.3</li> 
    <ul> 
     <li>2.1</li> 
     <li>2.2</li> 
     <li>2.3</li> 
    </ul> 
    <ul> 
     <li>2.4</li> 
     <li>2.5</li> 
     <li>2.6</li> 
    </ul> 
    <li>1.4</li> 
    <li>1.5</li> 
    <ul> 
     <li>2.7</li> 
     <li>2.8</li> 
     <li>2.9</li> 
    </ul> 
    <li>1.6</li> 
    <li>1.7</li> 
    <li>1.8</li> 
</ul> 

一个html我怎么能只针对最后一个和前3的孩子呢?在我的HTML我只想要1.11.21.31.61.71.8将是目标。

这是我tried但它也针对李UL的孩子里面UL

+0

正在编辑HTML的选项? – cjl750

+0

@ cjl750伤心地说,但它不是 –

回答

2

首先,你需要一种方法来识别ul你有兴趣,你可以在类或ID添加到最ul以便您的选择器不会以其他ul为目标。 (如果编辑HTML不是选项,可以使用选择器中的父元素,并且仅选择直接下标ul's。)

接下来,使用正确的选择器来获取第一个和最后3个子元素。

要选择第3个孩子:

ul.top > li:nth-child(-n+3) 

要选择最后3个孩子:

ul.top > li:nth-last-child(-n+3) 

看到它here.

+0

所以生病要添加一个脚本来添加一个类到第一个ul原因编辑HTML不是一个选项 –

+1

您还可以确保只使用顶级目标'ul'元素,这个'ul'是后裔,并且只选择该元素的直接后裔'ul'(例如:'body> ul> li') –

+0

谢谢sir @chava G –