2017-08-07 61 views
0

在小屏幕尺寸上,我需要能够选择每个第三项。我正在使用:nth-child(3n)来完成此操作。然后在桌面大小,我需要能够覆盖,并选择第3,第4,第7,第8和第11(最后)项目。我怎样才能做到这一点?如何选择第3,第4,第7,第8和第11李?

谢谢!

+1

使用媒体查询 – Gerard

+1

':第n个孩子(3 ),:nth-​​child(4),'etc ... –

回答

0

您想要选择两个从第三个开始,两个选择和两个未选中的项目。你可以只用两个选择做:

:nth-child(4n + 3) // select 3rd, 7th and 11th 
:nth-child(4n + 4) // select 4th and 8th 

使用媒体查询限制到所需的大小:

@media (max-width: 767px) { 
 
    li:nth-child(3n) { 
 
     background: green; 
 
    } 
 
} 
 

 
@media (min-width: 768px) { 
 
    li:nth-child(4n + 3), 
 
    li:nth-child(4n + 4) { 
 
     background: red; 
 
    } 
 
}
<ul> 
 
    <li>element 01</li> 
 
    <li>element 02</li> 
 
    <li>element 03</li> 
 
    <li>element 04</li> 
 
    <li>element 05</li> 
 
    <li>element 06</li> 
 
    <li>element 07</li> 
 
    <li>element 08</li> 
 
    <li>element 09</li> 
 
    <li>element 10</li> 
 
    <li>element 11</li> 
 
</ul>

+0

谢谢你的回答,那就是我一直在寻找的!我仍然不得不添加一个选择器来完全覆盖移动样式,所以我必须在我的媒体查询*中添加'li:nth-​​child(3n)',在其他两个选择器上面添加新的样式规则。再次感谢你! – Addie

0

您需要两个媒体查询 - 一个用于小屏幕,另一个用于大屏幕。

您还应该使用mixin来获得更多可维护的代码。

@mixin liStyles{ 
    color: red; 
    font-size 24px; 
} 

/* phones */ 
@media screen and (max-width: 767px){ 
    li:nth-child(3n){ 
    @include liStyles; 
    } 
} 

/* desktop */ 
@media screen and (max-width: 767px){ 
    li:nth-child(3), li:nth-child(4), li:nth-child(7), li:nth-child(8), li:nth-child(11){ 
    @include liStyles; 
    } 
} 
相关问题