你的位置:首页 > 网页设计

[网页设计]css3 巧用结构性伪类选择器


最近在国外的一个网站上看到的一个关于结构性伪类选择器的用法,觉得十分实用,就自己尝试了一下,并把它给记录下来:

这是最基本的样式:

 1 <style type="text/css"> 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 </style>

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   }

结果展示为:

 

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

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

结果展示为:

 

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

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

结果展示为:

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

比如可以利用 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   }

结果展示为:

 

还可以利用 :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   }

结果展示为:

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

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

结果展示为: