我将这坨伪类分成三组,第一组:nth-child,nth-last-child,only-child第二组:nth-of-type,nth-last-of-type,第三组:first-of-tpye,last-of-type,第四组:first-child,last-child。

==1==

nth-child定义是:其父级的第x个子元素。写法有两种:

p :nth-child(x)

p:nth-child(x)

第一种指的是p的第x个子元素,无需查找,明确指明父级,而子级无论是什么元素都将被选择。

第二种指的是p的父级元素的第x个子元素,此时父级元素并未指定,是该选择器去查询的包含有p元素的父级容器,但此时nth-child选择类型被明确指定了,只能是p元素,因此就会出现从p的父级去查找其子元素的时候,找不到p:nth-child(x)的情况,因为此时是在p的父级元素底下对所有子元素进行索引,x对应的p只有都具备的时候该选择器才能选中元素,换句话说,p的父级下的子元素,只有同时符合既是p元素且索引正好是x,才能被选中。

搞清楚了哈。再说说nth-child括号内可以允许的参数,包括数值,关键词(odd,even)及公式。

数值很好说,就是子元素的索引,该索引不单单指特定元素,而是所有子元素。关键词当然也是子元素的奇偶索引,因为含一个单子元素的情况很多见,因此奇数总是多于偶数比较常见。

公式,an+b,a,b是常数,而n是自然数,也就是0到无穷,变种2n+1,3n+1,-n+7(7以前的数字),而若数字x为n代表所有元素。关于求交并补集,以下两篇博文写的很清楚,不赘述:

http://www.qdfuns.com/notes/17398/84081c84d8c2056c6f4935c3c7fc6bbf:storey-13.html

http://www.qdfuns.com/notes/17398/f5371a84f07992c180561e0272bf800c.html

http://www.qdfuns.com/notes/17398/fa3777cd51a94d7ab30c87bd479a1471.html

nth-last-child跟nth-child一样,一个正序,一个倒序,而only-child指的是仅仅含有某指定元素或者未指定但是只有一个子元素的。

==2==

第二组,first-chlid和last-child,是nth-child(1)和nth-last-child(1)的简写 ,不赘述。

==3==

第三组nth-of-type,nth-last-of-type,last-of-type,first-of-type,only-of-type。

nth-of-type,nth-last-of-type,可以分别从前到后和从后到前选一组,而first-of-type和last-of-type则只能选第一个和最后一个。相对于第一组,它们的区别在于:

p :nth-of-type(1)

p:nth-of-type(1)

前者会选择所有第一次出现的不同子元素的第一个。比如有10个子元素,其中a3个,span2个,p3个,div一个,em一个,则会将a,span和p的第一个选中,div和em也被选中。因此nth-of-type的最佳用途肯定不是这样使用。而第二种用法则会将p的父级元素下的所有子元素种的第一个选中,索引不会计算其他非p元素。

大概就这么多。反正我懂了。其他遇到再说。

nth-child,nth-last-child,only-child,nth-of-type,nth-last-of-type,only-of-type,first-of-type,last-of-type,first-child,last-child伪类区别和用法的更多相关文章

  1. CSS3 nth 伪类选择器

    考察下面的 HTML 代码片段: <div> <section>section 1</section> <section>section 2</s ...

  2. CSS 伪类(下)结构性伪类\UI伪类\动态伪类和其他伪类 valid check enable child required link visit

      伪类选择器汇总伪类选择器有4种, 结构性伪类\UI伪类\动态伪类和其他伪类. 具体如下 结构性伪类选择器结构性伪类选择器它能够根据元素在文档中的位置选择元素, 这类元素都有个前缀":&q ...

  3. jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 从Sizzle1.8开始,这是Sizzle的分界线了,引入了编译函数机制 网上基本没有资料细说这个东东的,sizzle引入这 ...

  4. Jquery 之 使用选择器

    jQuery选择器描述 jQuery选择器是jQuery框架的基础,jQuery对事件的处理.DOM操作.CSS动态控制.Ajax通信.动画设计都是在选择器基础上进行的.jQuery 选择器采用CSS ...

  5. 抛开jQuery,拾起原生JS的DOM操作

    常用的JS-DOM操作与jQuery的对比 jQuery用多了,还是需要来熟练熟练原生JS的操作,不然写JS都快离不开jQuery了 目录 1. 获取DOM 2. 创建DOM 3. 添加DOM 4. ...

  6. CSS中的偏僻知识点

    一.css中的calc 在CSS中有calc属性用于尺寸的计算,可以让百分比和像素值进行运算. div {width : calc(100% - 30px);} 为了兼容性 /*Firefox*/ - ...

  7. Child <- many-to-one ->Parent

    网上找到个描述的很精妙的例子 Child   <-   many-to-one   ->Parent         class   Child   {         private   ...

  8. leetcode Database3(Nth Highest Salary<—>Consecutive Numbers<—>Department Highest Salary)

    一.Nth Highest Salary Write a SQL query to get the nth highest salary from the Employee table. +----+ ...

  9. Codeforces Round #250 (Div. 1) B. The Child and Zoo 并查集

    B. The Child and Zoo Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/438/ ...

  10. Pass value from child popup window to parent page window using JavaScript--reference

    Here Mudassar Ahmed Khan has explained how to pass value from child popup window to parent page wind ...

随机推荐

  1. Bootstrap-tagsinput标系统使用心得

    最近工作中由于需求使用到了Bootstrap-tagsinput标系统,我的需求是: 1)能够从后台数据库获取标签信息展示到前端页面: 2)能够实现输入标签添加到后台,并ajax刷新页面: 3)能够实 ...

  2. mysql 中文字段排序

    方法1)select * from mytable order by CONVERT(chineseColumnName USING gbk);  (备注:chineseColumnName 位排序字 ...

  3. codeforces 1023 D. Array Restoration 并查集

    D. Array Restoration time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. 秒杀多线程第八篇 经典线程同步 信号量Semaphore (续)

    java semaphore实现: Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用.Java 并发库 的Semaphore 可以很轻松完成信号 ...

  5. C++解析(16):友元与类中的函数重载

    0.目录 1.友元的尴尬能力 2.类中的函数重载 3.小结 1.友元的尴尬能力 什么是友元? 友元是C++中的一种关系 友元关系发生在函数与类之间或者类与类之间 友元关系是单项的,不能传递 友元的用法 ...

  6. Qt浅谈内存泄露(总结)

    Qt浅谈内存泄露(总结) 来源 http://blog.csdn.net/taiyang1987912/article/details/29271549 一.简介 Qt内存管理机制:Qt 在内部能够维 ...

  7. 延长xss的攻击(转)

    XSS 的本质仍是一段脚本.和其他文档元素一样,页面关了一切都销毁.除非能将脚本蔓延到页面以外的地方,那样才能获得更长的生命力. 庆幸的是,从 DOM 诞生的那一天起,就已为我们准备了这个特殊的功能, ...

  8. Ubuntu 使用Compiz配置炫酷3D桌面

    先看一下效果 要实现这种3D 的效果其实很简单. Step 1:安装N卡驱动工具 sudo apt- 这个东西其实没有太大的作用. Step 2:安装Compiz sudo apt-get insta ...

  9. Codeforces 864E dp

    题意: 房间着火了,里面有n件物品,每件物品有营救需要的时间t,被烧坏的最晚时间d,他的价值p,问能得到的最大价值,并且输出营救出来的物品编号 代码: //必然是先救存活时间短的即d小的,所以先排个序 ...

  10. 生存分析/Weibull Distribution韦布尔分布

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...