欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

css3 巧用结构性伪类选择器

程序员文章站 2022-03-07 10:36:54
...
最近在国外的一个网站上看到的一个关于结构性伪类选择器的用法,觉得十分实用,就自己尝试了一下,并把它给记录下来:

这是最基本的样式:

 1  2     li{
 3         list-style-type: none;
 4         float: left;
 5         width: 60px;
 6         height: 60px;
 7         background-color: #979698;
 8         margin-left: 10px;
 9         text-align: center;
10         line-height: 60px;
11         border-radius: 50%;
13     }
14 

body内的内容:

 1 body>
 2  ul>
 3      li>第01个li>
 4      li>第02个li>
 5      li>第03个li>
 6      li>第04个li>
 7      li>第05个li>
 8      li>第06个li>
 9      li>第07个li>
10      li>第08个li>
11      li>第09个li>
12      li>第10个li>
13      li>第11个li>
14  ul>
15 body>

首先是最基本的结构性伪类选择器的用法:

1     li:nth-child(8){
2         background-color: #298EB2;
4     }

结果展示为:

css3 巧用结构性伪类选择器

利用:nth-child(n+6) 相当于:nth-child(6)及以上的li标签元素:

1     li:nth-child(n+6){
2         background-color: #298EB2;
4     }

结果展示为:

css3 巧用结构性伪类选择器

同理利用:nth-child(-n+6) 相当于:nth-child(6)及以下的li标签元素:

1     li:nth-child(-n+6){
2         background-color: #298EB2;
4     }

结果展示为:

css3 巧用结构性伪类选择器

根据以上原理我们可以来一些进阶的:

比如可以利用 nth-child(n+4):nth-child(-n+8) 达到获取:nth-child(4)及以上和:nth-child(8)及以下的li标签元素:

1     li:nth-child(n+4):nth-child(-n+8){
2         background-color: #298EB2;
3     }

结果展示为:

css3 巧用结构性伪类选择器

还可以利用 :nth-child(n+2):nth-child(odd):nth-child(-n+8) 获取:nth-child(n+2)到:nth-child(-n+8)之间的单数li标签元素:

1     li:nth-child(n+2):nth-child(odd):nth-child(-n+8){
2         background-color: #298EB2;
3     }

结果展示为:

css3 巧用结构性伪类选择器

最后我们还可以利用:nth-child(3n+1)获取数目为1、4、7、10中的偶数li标签元素:

1     li:nth-child(3n+1):nth-child(even){
2         background-color: #298EB2;
3     }

结果展示为:

css3 巧用结构性伪类选择器