一、伪类选择器介绍

伪类选择器(简称:伪类)通过冒号来定义,它定义了元素的状态,如点击按下,点击完成等,通过伪类可以为元素的状态修改样式。

伪类的功能和一般的DOM中的元素样式相似,但和一般的DOM中的元素样式不一样,它并不改变任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见。伪类的效果可以通过添加一个实际的类来达到。

二、伪类选择器的分类

伪类选择器主要可以分为:动态伪类选择器、UI元素状态伪类选择器、结构伪类选择器、否定伪类选择器。

下面详细介绍这些分类的选择器语法:

1.动态伪类选择器语法

a:link(链接伪类选择器):选择匹配的a元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上

a:visited(链接伪类选择器 ):选择匹配的a元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上

a:active(用户行为选择器):选择匹配的a元素,且匹配元素被激活。常用于链接描点和按钮上

a:hover (用户行为选择器): 选择匹配的a元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover

a:focus (用户行为选择器): 选择匹配的a元素,而且匹配元素获取焦点

动态伪类选择器可以用于超链接 a标签的应用中:

a标签有4种伪类(即对应四种状态),如下:

:link “链接”:超链接点击之前

:visited “访问过的”:链接被访问过之后

:hover “悬停”:鼠标放到标签上的时候

:active “激活”: 鼠标点击标签,但是不松手时。

代码示例:
/让超链接点击之前是红色/
a:link {color: red;}

/让超链接点击之后是橙色/
a:visited {color: orange;}

/鼠标悬停,放到标签上的时候是绿色/
a:hover {color: green;}

/鼠标点击链接,但是不松手的时候/
a:active {color: black;}

a标签的这四种伪类选择器存在着一定的顺序,各个样式之间的顺序很有讲究,一旦出现排列错误就很有可能形成覆盖,导致其中某个样式无法显示。那么a标签的这四种伪类选择器需要怎样排序才可以使用?

在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的,a:active 必须被置于 a:hover 之后,才是有效的。

所以,a标签的这四种伪类选择器的顺序为:a:link ,a:visited,a:hover ,a:active

2.UI元素状态伪类选择器

E:checked(选中状态伪类选择器):匹配选中的复选按钮或者单选按钮表单元素

E:enabled(启用状态伪类选择器 ):匹配所有启用的表单元素

E:disabled(不可用状态伪类选择器):匹配所有禁用的表单元素

UI元素状态伪类选择器主要是针对于HTML中的Form元素进行操作,最常见的比如我们"type="text"有enable和disabled两种状态,前者为可写状态后者为不可状态;另外"type="radio"和"type=“checkbox”"有"checked"和"unchecked"两种状态。来看两个实例,比如说你想将"disabled"的文本框与别的文本框区别出来,你就可以这样应用:

input[type=“text”]:disabled {border:1px solid #999;background-color: #fefefe;}

注意:IE6-8不支持":checked",":enabled",":disabled"这三种选择器。

3.结构伪类选择器

E:fisrt-child :作为父元素的第一个子元素的元素E。与E:nth-child(1)等同

E:last-child :作为父元素的最后一个子元素的元素E。与E:nth-last-child(1)等同

E:root:选择匹配元素E所在文档的根元素。在HTML文档中,根元素始终是html,此时该选择器与html类型选择器匹配的内容相同

E F:nth-child(n):选择父元素E的第n个子元素F。其中n可以是整数(1,2,3)、关键字(even,odd)、可以是公式(2n+1),而且n值起始值为1,而不是0.

E F:nth-last-child(n):选择父元素E的倒数第n个子元素F。此选择器与E:nth-child(n)选择器计算顺序刚好相反,但使用方法都是一样的,其中:nth-last-child(1)始终匹配最后一个元素,与last-child等同

E:nth-of-type(n) :选择父元素内具有指定类型的第n个E元素

E:nth-last-of-type(n):选择父元素内具有指定类型的倒数第n个E元素

E:first-of-type:选择父元素内具有指定类型的第一个E元素,与E:nth-of-type(1)等同

E:last-of-tye :选择父元素内具有指定类型的最后一个E元素,与E:nth-last-of-type(1)等同

E:only-child :选择父元素只包含一个子元素,且该子元素匹配E元素

E:only-of-type:选择父元素只包含一个同类型子元素,且该子元素匹配E元素

E:empty: 选择没有子元素的元素,而且该元素也不包含任何文本节点

结构伪类选择器,可以根据元素在文档中所处的位置,来动态选择元素,从而减少HTML文档对ID或类的依赖,有助于保持代码干净整洁。

结构伪类选择器很容易遭到误解,需要特别强调。如:

p:first-child;

它表示的是:选择父元素下的第一个子元素 p,而不是选择 p 元素的第一个子元素。

注意:

结构伪类选择器中,子元素的序号是从 1 开始的,也就是说,第一个子元素的序号是 1,而不是 0。换句话说,当参数 n 的计算结果为 0 时,将不选择任何元素。

4.否定伪类选择器

E:not(F):匹配所有除元素F外的E元素

例:对form中所有input加边框,但又不想submit也起变化,就可以这样写:

input:not([type=“submit”]) {border: 1px solid red;}

伪类选择器的简单介绍相关推荐

  1. css中什么是伪类选择器?伪类选择器的简要介绍

    本章给大家带来css中什么是伪类选择器?伪类选择器的简要介绍.让大家可以了解在css中伪类选择器的作用,css伪类选择器有哪些分类等知识.有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. ...

  2. 伪类选择器和伪元素选择器

    我们再讲选择器权重的时候提到了类选择器和伪类选择器权重是一样的那么今天我们就拿出来伪类选择器和伪元素选择器单独讲一下: 伪类选择器: 伪类选择器很简单的理解就是在某种特殊的状态下的样式,比如说&quo ...

  3. CSS3 选择器——笔记+实战案例(基本选择器、组合选择器、属性选择器、伪类选择器)...

    使用CSS3 选择器--笔记 CSS通过选择器控制HTML元素,CSS选择器对网页对象可以实现一对一.一对多或者多对一的匹配. 一.CSS3选择器分类 CSS选择器在CSS2.1选择器的基础上新增了属 ...

  4. 超链接a标签的伪类选择器问题,Link标签与visited标签的失效问题(问题介绍与解决方法)。以下全部内容跟可通过鼠标左键选取后,复制到编辑器中直接运行。

    超链接a标签的伪类选择器问题,Link标签与visited标签的失效问题(问题介绍与解决方法).以下全部内容跟可通过鼠标左键选取后,复制到编辑器中直接运行. 参考文章: (1)超链接a标签的伪类选择器 ...

  5. CSS基础知识(表单标签、事件、CSS介绍、选择器、伪类选择器案例、样式、盒子模型、定位)...

    一. 表单标签 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  6. php中的伪类选择器,css伪类选择器介绍

    伪类选择器: (推荐学习:css快速入门) 1.link.hover.active.visited a:link(未访问的链接状态),用于定义了常规的链接状态. a:hover(鼠标放在链接上的状态) ...

  7. 关于伪类选择器的介绍

    <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" co ...

  8. CSS结构伪类选择器

    结构伪类选择器,可以根据元素在文档中所处的位置,来动态选择元素,从而减少HTML文档对ID或类的依赖,有助于保持代码干净整洁. 表 2-6 结构伪类选择器 选择器 功能描述 版本 E:last-chi ...

  9. CSS3选择器--结构性伪类选择器

    在学习结构性伪类选择器之前,先了解2个概念:CSS中的伪类选择器和伪元素: 1.伪类选择器:CSS中已经定义好的选择器,不能随便取名 常用的伪类选择器是使用在a元素上的几种,如a:link|a:vis ...

最新文章

  1. AI解决方案:边缘计算和GPU加速平台
  2. 保护模式下GDTR,LDTR,全局描述符表,局部描述符表和选择器的关系
  3. java消费者和生产者模型_Java实现简易生产者消费者模型过程解析
  4. python3.5中文手册_Python 入门指南 — Python3 中文手册 3.5.2 文档 | 三维部落
  5. 实现文件上传进度条功能
  6. 搜狗推出庭审语音识别系统 人工智能下的全新应用
  7. DELPHI 初学.
  8. C#即时通讯客户端源码【源码免费分享】
  9. 秋招跳槽求职P8架构大咖整理“Java后端技术面试笔记”,目标是成为Java架构师,这条件不过分吧
  10. Python print语句输出重定向到网页前端
  11. 普通人考出PMP到底有用吗?
  12. Ubuntu下用Emacs编写D语言程序
  13. 操作系统基础教程——第六章课后答案
  14. geoserver离线地图服务搭建和图层发布
  15. 暨南大学成人高考2021年招生简章
  16. 细细品味Hadoop_Hadoop集群精华文档合集
  17. ZoKrates+Remix在线实现zkSNARK零知识证明
  18. DOM-21【键盘事件、贪吃蛇运动原理】
  19. rg1 蓝光危害rg0_LED灯具蓝光危害评估方法
  20. 浏览器ocx控件安装 WINDOW10 IE浏览器 可用

热门文章

  1. 土豪小米天价域名背后 互联网商业模式重组
  2. 2021年全球渗膜式空气干燥器收入大约525百万美元,预计2028年达到580百万美元
  3. 游戏建模师要什么学历?
  4. 科研人,如何辨别期刊是正规期刊
  5. Go C 编程 第4课 变色魔法(魔法学院的奇幻之旅 Go C编程绘图)
  6. 沈南鹏@《遇见大咖》: A轮没投,投了8个月以后就证明了张一鸣是对了,在美国都没有张一鸣这种模式...
  7. 非静压模型NHWAVE学习(7)——波浪变形模拟算例学习(Wave transformation over an elliptical shoal)
  8. 前端学习CSS篇(三)
  9. 服务器的防御是什么意思?
  10. 显卡与compute_ sm_版本匹配问题