css奇数偶数选择器

374次阅读  |  发布于3年以前

前端项目开发中,需要根据行数的奇数和偶数的不同,设置不同的颜色显示,以在视觉上给用户以良好的浏览体验,这里就需要使用css奇数偶数选择器。

主要用的::nth-of-type或者:nth-child。

方式一:nth-child


div:nth-child(odd){

} //奇数行

div:nth-child(even){

} //偶数行

:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。

方式二:nth-of-type


div:nth-of-type(odd){
  //奇数行  
} 
div:nth-of-type(even){
  //偶数行 
}

nth-of-type(n) : 匹配同类型中的第n个同级兄弟元素。

区别:nth-child () 与 nth-of-type()

nth-child(n) : 匹配父元素中的第 n 个子元素,元素类型没有限制。 nth-of-type(n) : 匹配同类型中的第n个同级兄弟元素。

n可以是一个数字,一个关键字,或者一个公式,比如:nth-child(odd) 奇数 ,nth-child(even) 偶数。

nth-child和nth-of-type的不同之处就是查找元素的方式不同。前者是查找兄弟元素中某个绝对位置的元素,后者是查找同类型元素中某个绝对位置的元素。

相同之处是,两者都是找到元素之后再与前面的选择符进行匹配,这里的匹配方式是一样的。

稍微往下延伸,清楚了查找方式,那么不管前面的选择符怎么变,最后都是先查找到元素再与前面的选择符进行匹配。

也就是说选择符与他们的查找方式没有关系。

延伸:选中最后一个奇数和偶数

这里以nth-child为例:

// 选中最后一个奇数
div:nth-child(odd):last-child {
    margin-bottom: 0;
}
// 选中最后一个偶数
div:nth-child(even):last-child {
    margin-bottom: 0;
}

本文完~

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8