为什么css中dd结构伪类选择器2n变得是奇数?

html-css09

为什么css中dd结构伪类选择器2n变得是奇数?,第1张

HTML CODE:1.<div class=box>2. <span>First span</span>3. <p class=ft>First p</p>4. <div>First div<strong class=ft>Strong text</strong></div>5. <p class=ft>Second p</p>6. <div class=ft>Second div <span>Second span</span><span>Third span</span></div>7.</div>结构性伪类选择器的冒号前边可以跟一个其他选择器做为限定;带括号的选择器,里面一定要有参数;匹配子元素,同时也会匹配孙子元素,因为子元素是孙子元素的父元素;下面的 !lte8是指IE8一下浏览器不支持,包括IE8也不支持:first-of-type,选择相对父元素里同类型子元素中的第一个,!lte8.box :first-of-type {color: #f00}//匹配2.3.4以及4里面的strong和6里面的第一个span,因为这个span是6里的第一个span子元素.box .ft:first-of-type {color: #ff0}//匹配3和4里面的strong,因为3是box里面的第一个p且class=”ft”,而4里只有一个strong且class=”ft”,而5和6虽然class=”ft”但是他们相对于box的同类型中不是第一个出现的;:last-of-type,选择相对父元素里同类型子元素中的最后一个,!lte8.box :last-of-type {color: #f00}//匹配2.5.6以及4里的strong和6里的最后一个span:only-of-type,选择相对父元素里同类型子元素中只有一个的元素,!lte8.box :only-of-type {color: #f00}//匹配2以及4里的strong,类为box里同类型元素只有一个的只有span.box .ft:only-of-type {color: #f00} //只匹配4里的strong:only-child,选择的元素相对于其父元素是唯一的子元素,!lte8.box :only-child {color: #f00}//只匹配4里的strong:nth-child(n),选择其父元素的第n个子元素或多个子元素,索引从1开始,当n用于表达式时索引从0开始!lte8.box :nth-child(3) {color: #f00}//匹配第三个子元素即这里的4.box :nth-child(odd) {color: #f00} 等价于 .box :nth-child(2n + 1) {color: #f00}//匹配奇数即这里的2.4.6以及4里的strong和6里的第一个span.box :nth-child(even) {color: #f00} 等价于 .box :nth-child(2n + 2) {color: #f00}和.box :nth-child(2n)//匹配偶数即这里的3.5以及6里的第二个span.box :nth-child(n + 1) {color: #f00}//匹配 n + 1开始的所有子元素即.box里所有的子元素以及子孙元素,因为这里n是从1开始的即:n = 0 ---->n + 1 = 0 + 1 = 1,即这里的2n = 1 ---->n + 1 = 1 + 1 = 2,即这里的3... ...n = 4 ---->n + 1 = 4 + 1 = 5,即这里的6:nth-last-child(n),跟:nth-child(n)使用类似,只是索引是从最后开始往前数,!lte8.box :nth-last-child(3) {color: #f00}//匹配倒数第三个子元素即这里的4:nth-of-type(n),选择父元素的第n个或多个同类型的子元素,!lte8.box :nth-of-type(2) {color: #f00}//匹配5和6以及6里面的第二个span:nth-last-of-child(n),同上,只是从最后开始往前数,!lte8.box :nth-last-of-child(2) {color: #f00}//匹配3和4以及6里面的第一个span:first-child,选择父元素里的第一个子元素,!ie6.box :first-child {color: #f00}//匹配2和4里的strong以及6里的第一个span:last-child,选择父元素里的最后一个子元素,!lte8.box :last-child {color: #f00}//匹配6和6里的最后一个span以及4里的strong:root,选择文档的根元素,在HTML中就是指<html>标签,!lte8:empty,选择没有任何内容的元素,那怕是有一个空格也不行,!lte8table td:empty {background-color: #ffc}//匹配表格里没有内容的td:target,选择当前活动的元素,指锚点点击后跳转到的那一个元素,!lte8:not(selector),选择排除selector以外的其他所有元素,!lte8.box *:not(div) {background-color: #ffc}//选择box里除div以外的所有后代元素,如果div里有其他非div元素,也会选择上,如上的HTML CODE就会选择上div里面的span和strong

做前端一定要记住:nth-child(2)这个选择器,它可以帮你轻松选择你想要的标签并给与修改添加样式

下面通过几个例子说明,相信你一看就明白

:nth-child(2)表示选取第几个标签,”2可以是你想要的数字”

:nth-child(n+4)选取大于等于4标签,”n”表示从整数

:nth-child(-n+4)选取小于等于4标签

:nth-child(2n)选取偶数标签,2n也可以是even

:nth-child(2n-1)选取奇数标签,2n-1可以是odd

:nth-child(3n+1)自定义选取标签,3n+1表示”隔二取一”

:last-child选取最后一个标签

:nth-last-child(3)选取倒数第几个标签,3表示选取第3个

在开发中,需要这样一个需求,需要找到第n个孩子元素。一时想不起来应该怎么写,经过查阅后得知。

因此记录一下,以免日后再忘记。

:nth-child 是CSS伪类,它首先找到所有当前元素的兄弟元素,然后按照位置 先后顺序从1开始排序 ,选择的结果为CSS伪类:nth-chilid括号中表达式(an+b)匹配到的元素集合。(n=0,1,2,3)。

tr:nth-child(2n+1)

表示表格中的奇数行

tr:nth-child(odd)

表示表格汇总的奇数行

tr:nth-child(2n)

表示表格中的偶数行

tr:nth-child(even)

表示表格中的偶数行

span:nth-child(0n+1)

表示子元素中第一个且为span的元素,与:first-child选择器的作用相同

span:nth-child(-n+3)

匹配前三个子元素中的span元素

https://developer.mozilla.org/zh-CN/docs/Web/CSS/:nth-child