css选择器中:first-child与:first-of-type的区别

:first-child选择器是css2中定义的选择器,从字面意思上来看也很好理解,就是第一个子元素。比如有段代码:

p:first-child  匹配到的是p元素,因为p元素是div的第一个子元素;

h1:first-child  匹配不到任何元素,因为在这里h1是div的第二个子元素,而不是第一个;

span:first-child  匹配不到任何元素,因为在这里两个span元素都不是div的第一个子元素;

然后,在css3中又定义了:first-of-type这个选择器,这个跟:first-child有什么区别呢?还是看那段代码:

p:first-of-type  匹配到的是p元素,因为p是div的所有类型为p的子元素中的第一个;

h1:first-of-type  匹配到的是h1元素,因为h1是div的所有类型为h1的子元素中的第一个;

span:first-of-type  匹配到的是第三个子元素span。这里div有两个为span的子元素,匹配到的是它们中的第一个。

所以,通过以上两个例子可以得出结论:

:first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。

:first-of-type 匹配的是某父元素下相同类型子元素中的第一个,比如 p:first-of-type,就是指所有类型为p的子元素中的第一个。这里不再限制是第一个子元素了,只要是该类型元素的第一个就行了。

同样类型的选择器 :last-child  和 :last-of-type、:nth-child(n)  和  :nth-of-type(n) 也可以这样去理解。

时间: 2024-10-14 23:00:59

css选择器中:first-child与:first-of-type的区别的相关文章

CSS选择器中nth-child和nth-type-child的区别

在CSS里选择父元素下的第几个子元素我们可以用的方法有nth-child 和nth-of-type,刚开始用的时候觉得这两个应该效果的用法应该是一样的,但是为什么CSS会定义两个一样的选择器呢?今天我来讲讲自己的见解,不喜勿喷: 现在来谈谈他们之间的差别: 代码结构如下(1): <section> <p>第1个</p> <p>第2个</p> <p>第3个</p> <p>第4个</p> </se

css 选择器中的正则表达式

正则表达式在任何语言中都有使用,只是使用的形式不一样而已 css也是一门语言,也有自己的正则表达式 正则表达式中的一些通用规则: 1 ^ 表示字符串开始位置匹配 2 $表示字符串结束为止匹配 3 *表示字符串任意位置匹配 4 i表示字符串匹配不区分大小写 5 g 表示字符串全局匹配 css属性选择器与正则表达式: 1 [attr="val"] 选择attr属性值只为val的元素<div attr="val"/> 2[attr]选择有attr这个属性的元素

关于伪类选择器中一个冒号和两个冒号的区别

在平时工作中用到伪类选择器的时候一个冒号和两个冒号貌似都是可以的,所以两者到底有什么区别呢,我们先来看下W3C关于CSS3选择器的规范中有一段描述: A pseudo-element is made of two colons (::) followed by the name of the pseudo-element. This :: notation is introduced by the current document in order to establish a discrimi

python中pyquery库的css选择器实战解析

1.pyquery部分选择器解释 """pyquery的CSS选择器方法""" from pyquery import PyQuery html = """ <div id="container"> <table class="tablelist" cellpadding="0" cellspacing="0">

【CSS】使用CSS选择器

CCS选择器的作用是找出某类元素.以便使我们使用style元素或者外部样式表对这类元素设置样式. 1.使用CSS基本选择器 有些选择器使用起来非常简单,我们把这部分选择器称为基本选择器(basic selector).开发人员可使用这类选择器在文档中进行比较宽泛的选择,也可以将其看作结合多种选择器进行特殊选择的基础. 1.1 选择所有元素 通用选择器匹配文档中的所有元素.它是最基本的选择器,不过使用很少,因为匹配过于广泛. 下面代码是一个使用通用选择器的样式示例: <!DOCTYPE html>

这 30 类 CSS 选择器,你必须理解!

CSS 选择器是一种模式,用于选择需要添加样式的元素.平时使用最多也是最简单的就是 #id..class 和标签选择器,在 CSS 中还有很多更加强大更加灵活的选择方式,尤其是在 CSS3 中,增加了很多新的选择器,使得选择元素更加便捷,所以必须理解这些选择器,只有先理解了,多用几次,自然而然就记住了. 1.* [CSS2] 通配符,选择页面所有元素. 1 *{ 2 margin:0; 3 padding:0; 4 } 上面代码的作用是把页面上所有元素的内外边距设置为 0,这是最基本的清除默认 

css选择器大于号&gt;的作用是什么

css选择器大于号>的作用是什么:本章节介绍一下CSS选择器中的大于号的作用.由于以前浏览器支持的问题,可能吃选择器较少使用,但是随着时间的推移,版本的更新,兼容性已经不是问题,所以它的应用也就多了起来,下面就通过代码实例做一下简单介绍.此选择器能够匹配指定元素的所有一级子元素.代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=&quo

CSS选择器效率问题

今天学习了CSS各类选择器,对其效率问题有些疑问,故总结了一些学习笔记 有很多人都忘记了,或在简单的说没有意识到,CSS在我们手中,既能很高效,也可以变得很低能.这很容易被忘记,尤其是当你意识到你会的太少,CSS代码效率很低的时候. 下面的规则只真正被应用到那些速度要求很高,有成百上千的DOM元素被绘制在页面上的大型网站.但是,实践出真理,这和你是在创建下一个Facebook,还是写一个本地的展示页面都没有关系,多知道一点总是好的. CSS选择器: 对我们大多数人来说,CSS选择器并不陌生.最基

详解CSS选择器、优先级与匹配原理

最常用的五类CSS选择器 准确而简洁的运用CSS选择器会达到非常好的效果.我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果.在实际工作中,最常用的选择器有以下五类: 一.标签选择器: 顾名思议,标签选择器是直接将HTML标签作为CSS选择器,可以是p.h1.dl.strong等HTML标签.如: p{font:12px;} em{color:blue;} dl{float:left;margin-top:10px;} 二.id选择器: 我们通常