导读:

CSS3 中有许多伪类选择器,其中一些伪类选择器的作用近似却又不完全一样,下面我们就来看一看到底有什么不一样。

1、:only-child:only-of-type

      测试的代码:
<div>
<p>something</p>
</div>
<div>
<div>other something</div>
<p>something</p>
</div>
  • :only-child 是指匹配属于父元素中唯一子元素的元素。设置 p:only-child { background-color:#00ff00; } 后表现为:

    something

    other something

    something

  • :only-of-type是指匹配指定元素的父元素中唯一相同类型的子元素(该父元素可以有很多子元素,而与指定匹配的元素属于同一种类型的子元素是唯一的,则为其设定样式)。设置 p:only-of-type { background-color:#00ff00; } 后表现为:

    something

    other something

    something

2、:first-child:first-of-type

      测试的代码:
<div>
<p>something</p>
<div>other something</div>
</div>
<div>
<div>other something</div>
<p>something</p>
</div>
  • :first-child 是指匹配的对象是其所在的父元素的第一个元素。设置 p:first-child { background-color:#00ff00; } 后表现为:

    something

    other something
    other something

    something

  • :first-of-type 是指匹配的对象是其所在的父素的第一个相同类型元素。设置 p:first-of-type { background-color:#00ff00; } 后表现为:

    something

    other something
    other something

    something

3、:last-child:last-of-type 可以参考 :first-child:first-of-type 的思路

4、:nth-child(n):nth-of-type(n)

      测试的代码:
<div>
<div>other something</div>
<p>something</p>
<p>something</p>
<p>something</p>
</div>
  • nth-child(n) 是指匹配的对象是其所在的父元素的第 n 个元素。设置 p:nth-child(n) { background-color:#00ff00; } 后表现为:

    • 当 n 为 1(数字) 时:没有被选中的元素。
    • 当 n 为 2(数字) 时:
      other something

      something

      something

      something

    • 当 n 为 n+3(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 -n+3(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 2n(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 2n+1(公式) 时:
      other something

      something

      something

      something

  • tips:上面中的 n 的取值可以是数字,一个关键字,一个公式(此时 n 是一个从0开始的计数器)。当 n 取值 -n+2 表示小于等于2;当 n 取值 n+2 表示大于等于2;当 n 取值 2n 表示取偶数,也可以用 even 代替;当 n 取值 2n-1 表示去奇数,也可以用 odd 代替。
  • nth-of-type(n) 是指匹配的对象是其所在的父素的第 n 个相同类型元素。设置 p:nth-of-type(n) { background-color:#00ff00; } 后表现为:
    • 当 n 为 1(数字) 时:

      other something

      something

      something

      something

    • 当 n 为 2(数字) 时:
      other something

      something

      something

      something

    • 当 n 为 n+3(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 -n+3(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 2n(公式) 时:
      other something

      something

      something

      something

    • 当 n 为 2n+1(公式) 时:
      other something

      something

      something

      something

5、:nth-last-child(n):nth-last-of-type(n) 可以参考 :nth-child(n):nth-of-type(n) 的思路

若是文中有什么错误,欢迎大家指正批评,愿与大家在问题的交流之中共同进步。愈激烈,愈深刻。

CSS 中功能相似伪类间的区别的更多相关文章

  1. CSS中的一些伪类

    一.:nth-child 和 :nth-of-type (1):nth-child() :nth-child(n) 选择器选取某任意一父元素的第 n 个子元素( p:nth-child(n) 即选中任 ...

  2. 学习css常用基本层级伪类属性选择器

    常见的css选择器包含:常用选择器.基本选择器.层级选择器.伪类选择器.属性选择器,其中常用选择器分为:1.html选择符*{}//给页面上所有的标签设置模式:2.类选择符.hcls{}//给clas ...

  3. 妙味css3课程---1-2、css3中新增的伪类和伪元素有哪些

    妙味css3课程---1-2.css3中新增的伪类和伪元素有哪些 一.总结 一句话总结: 1.div:target{}是什么意思? 比如a标签的锚点链接到div,div:target{}就可以找到这个 ...

  4. css中px,em和rem的区别

    css中px,em和rem的区别 今天,突然间发现一个特别有意思的问题,就是无意间看到一个网站中的em并不是16px,下面展开了对于px和em以及rem的探究. 首先,px是绝对长度单位,是相对于显示 ...

  5. css中word-break、word-wrap和white-space的区别

    css中word-break.word-wrap和white-space的区别 :https://baijiahao.baidu.com/s?id=1578623236521030997&wf ...

  6. 前端笔记之HTML5&CSS3(中)选择器&伪类伪元素&CSS3效果&渐变背景&过渡

    一.CSS3选择器 CSS3是CSS的第三代版本,新增了很多功能,例如:强大的选择器.盒模型.圆角.渐变.动画.2D/3D转换.文字特效等. CSS3和HTML5没有任何关系!HTML5骨架中,可以用 ...

  7. CSS设计指南之伪类

    伪类这个叫法源自它们与类相似,但实际上并没有类会附加到标记中的标签上.伪类分两种. UI伪类会在HTML元素处于某个状态时(比如鼠标指针位于链接上),为该元素应用CSS样式. 结构化伪类会在标记中存在 ...

  8. Html学习之十(CSS选择器的使用--伪类选择器)

    伪类选择器 一.基于a标签. 1.:hover 选择鼠标滑过的超链接元素 2.:active 选择鼠标单击中的超链接元素 3.:link 选择未被访问的超链接元素 4.:visited 选择已经被访问 ...

  9. css 04-CSS选择器:伪类

    04-CSS选择器:伪类 #伪类(伪类选择器) 伪类:同一个标签,根据其不同的种状态,有不同的样式.这就叫做"伪类".伪类用冒号来表示. 比如div是属于box类,这一点很明确,就 ...

随机推荐

  1. htmlspecialchars_decode 解决掉 &amp;

    如果在请求中返回的内容包含 & 请使用htmlspecialchars_decode 搞一下,去掉. 这个纯粹为自己怕到时又找不到这个方法

  2. Java-技术专区-异步编程指南

    通过本文你可以了解到下面这些知识点: Future 模式介绍以及核心思想 核心线程数.最大线程数的区别,队列容量代表什么: ThreadPoolTaskExecutor 饱和策略: SpringBoo ...

  3. 消息 245,级别 16,状态 1,第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。

    错误问题: 消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,8' 转换成数据类型 int 时失败. ps: 这是在后台分配菜单权限这个功能时出现的问题 一,解决方法: 将 ...

  4. 一、Redis的安装

    1.下载.解压.编译.安装 # 下载地址 wget http://download.redis.io/redis-stable.tar.gz # 解压 tar xzf redis-stable.tar ...

  5. mongodb C#连接报错 Invalid credentials for database 'admin'

    这2天学习mongodb3.2.9,用户设置好了,结果用C#查询的时候报错了,看字面意思是用户验证没通过,但是我用shell是完全没有问题的,后来网上搜了下,发现原来是我用的是旧驱动,旧驱动用的是旧的 ...

  6. Centos yum的源 设置为阿里云源

    在 阿里巴巴镜像站页面,在centos 操作的帮助,有介绍 wget和curl 2种方式来下载CentOS-Base.repo 备份 mv /etc/yum.repos.d/CentOS-Base.r ...

  7. webpack 学习三 模式

    开发环境(development)和生产环境(production)的构建目标差异很大.在开发环境中,我们需要具有强大的.具有实时重新加载(live reloading)或热模块替换(hot modu ...

  8. mybatis generator 使用方法

    环境: ubuntu   eclipse maven 一. 简介 mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件以及pojo 二. ...

  9. maven eclipse远程部署tomcat

    pom.xml tomcat 配置信息  <properties><project.build.sourceEncoding>utf8</project.build.so ...

  10. redis相关笔记(三.redis设计与实现(笔记))

    redis笔记一 redis笔记二 redis笔记三 1.数据结构 1.1.简单动态字符串: 其属性有int len:长度,int free:空闲长度,char[] bur:字符数组(内容) 获取字符 ...