css奇数偶数选择器

894c4ec84edf792262fe41c011b5e5d8.png

前端项目开发中,需要根据行数的奇数和偶数的不同,设置不同的颜色显示,以在视觉上给用户以良好的浏览体验,这里就需要使用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;
}

本文完~

学习更多技能

请点击下方公众号

51f3dafc07c93384495c4a5d8f6fcff8.gif

372008ad2bde4fd5581b7d774d935b44.png

cd18c6b82164901bc28014f19c7d395b.png

  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/*! * css选择器 * 冒泡原理 * 如果后面的表达式无效,只返回有效表达式匹配的结果 * author chenyipeng * e-mail: [email protected] * ps: 如有bug请多多包涵 * 参考: jquery css选择器 * 目前实现 * #id 根据给定的ID匹配一个元素 * tagName 匹配给定的元素名的所有元素 * .class 匹配class=class的所有元素 //非IE下,可以直接find * selector1,selector2 将每一个选择器匹配到的元素合并后一起返回 * * 匹配所有元素 * tag1 tag2(也可以写做tag1 in tag2) 在给定的tag1元素下匹配所有的后代tag2元素 * parent>child 匹配给定元素下的所有直属子元素 * prev+next 匹配所有紧接在pre元素后的next元素 * prev~siblings 【匹配pre元素之后的所有siblings元素(不一定要紧接)】 * :first 匹配元素的第一个,例如ul:first,匹配第一个ul * :last 匹配元素的最后一个 * :even 匹配所有索引值为偶数的元素 * :odd 匹配所有索引值为奇数的元素 * :eq(index) 【匹配等于给定索引值的元素,index以0开始计数】 * :gt(index) 【匹配大于给定索引值的所有元素】 eg ul:gt(0) * :lt(index) 【匹配小于给定索引值的所有元素】 eg ul:lt(3) * :nth(index/even/odd/expression) 【匹配第N个子或奇偶元素】 * :first-child 【匹配第一个子元素是(前缀)的元素】 eg ul:first-child 匹配ul为首子元素的ul ---这里只有筛选nodeType=1 * :last-child 【匹配最后一个子元素是(前缀)的元素】 eg ul:last-child 匹配ul为最后一个子元素的ul * :only-child 【如果某个元素是父元素中唯一的子元素,那将会被匹配】 * :nth-child 【匹配其父元素下的第N个子或奇偶元素】 * :has(selector) 【selector必须是个有效的表达式,这里不去匹配元素本身的属性,所有表达式.class等本身属性一般匹配无效】 * :not(selector) */

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值