热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

014_CSS伪类选择器

1.伪类选择器是通过单冒号(:)和特定的具有某种含义的单词来确定所选元素。2.所谓伪类选择器,是相对于类选择器来说的。伪类选择器类似于添加类,所以可以是多个。3.伪类的语法

1. 伪类选择器是通过单冒号(:)和特定的具有某种含义的单词来确定所选元素。

2. 所谓伪类选择器, 是相对于"类选择器"来说的。伪类选择器类似于添加类, 所以可以是多个。

3. 伪类的语法:

selector : pseudo-class {property: value;
}

4. 锚伪类

4.1. 在支持CSS的浏览器中, 链接的不同状态可以使用不同的方式显示, 这些状态包括: 活动状态(按下鼠标, 可以一直按下鼠标), 已被访问状态, 未被访问状态和鼠标悬停状态。

/* 未访问的链接 */
a:link {color: #FF0000;
}
/* 已访问的链接 */
a:visited {color: #00FF00;
}
/* 鼠标移动到链接上 */
a:hover {color: #FF00FF;
}
/* 选定的链接 */
a:active {color: #0000FF;
}

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

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

4.4. 伪类名称对大小写不敏感。

4.5. 例子

4.5.1. 代码


这是一个链接。

注释:在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后,这样才能生效!

注释:在 CSS 定义中,a:active 必须位于 a:hover 之后,这样才能生效!


4.5.2. 效果图

5. :first-child伪类

5.1. :first-child伪类来选择做为某元素的第一个子元素(必须是第一个子元素)元素

5.2. 这个特定伪类很容易遭到误解, 所以有必要举例来说明。考虑以下标记:

These are the necessary steps:

  • Intert Key
  • Turn key clockwise
  • Push accelerator

Do not push the brake at the same time as the accelerator.


5.2.1. 在上面的例子中, 作为第一个元素的元素包括第一个p、第一个li和em和i元素。

5.2.2. 给定以下规则:

p:first-child {font-weight: bold;
}
li:first-child {text-transform: uppercase;
}

5.2.3. 第一个规则将作为某元素第一个子元素的所有p元素设置为粗体。第二个规则将作为某个元素(在html中, 这肯定是ol或ul元素)第一个子元素的所有li元素变成大写。

5.3. 最常见的错误是认为p:first-child之类的选择器会选择p元素的第一个子元素。

5.4. 必须声明, 这样:first-child才能在IE中生效。

5.5. 例子

5.5.1. 代码


These are the necessary steps:

  • Intert Key
  • Turn key clockwise
  • Push accelerator

Do not push the brake at the same time as the accelerator.


5.5.2. 效果图

6. :last-child伪类

6.1. :last-child选择器匹配属于其父元素的最后一个子元素(必须是最后一个子元素)元素

6.2. 例子

6.2.1. 代码


These are the necessary steps:

  • Intert Key
  • Turn key clockwise
  • Push accelerator

Do not push the brake at the same time as the accelerator.


6.2.2. 效果图

7. :nth-child(n)伪类

7.1. :nth-child(n)选择器匹配属于其父元素的第n个子元素(必须是第n个元素)的元素, 不论元素的类型。

7.2. n可以是数字、关键词或公式。

7.3. odd和even是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是: 1)。

7.4. 例子

7.4.1. 代码


第一个段落。

第二个段落。

第三个段落。

第四个段落。

第五个段落。


7.4.2. 效果图

8. :nth-last-child(n)伪类

8.1. :nth-last-child(n)选择器匹配属于其父元素的第n个子元素(必须是第n个子元素)的元素, 不论元素的类型, 从最后一个子元素开始计数。

8.2. 例子

8.2.1. 代码


第一个段落。

第二个段落。

第三个段落。

第四个段落。

第五个段落。


8.2.2. 效果图

9. :nth-of-type(n)伪类

9.1. :nth-of-type(n)选择属于父元素的特定类型的第n个子元素(按照类型匹配, 不一定是父元素的第n个元素, 可能大于等于n)的元素。

9.2. 例子

9.2.1. 代码


第一个段落。

第二个段落, 但是p给换成了b。

第三个段落。

第四个段落。

第五个段落。


9.2.2. 效果图

10. nth-last-of-type(n)伪类

10.1. nth-last-of-type(n)选择属于父元素的特定类型的第n个子元素(按照类型匹配, 不一定是父元素的第n个元素, 可能大于等于n)的元素, 从最后一个子元素开始计数。

10.2. 例子

10.2.1. 代码


第一个段落。

第二个段落。

第三个段落。

第四个段落, 但是p给换成了b。

第五个段落。


10.2.2. 效果图

11. :first-of-type伪类

11.1. :first-of-type选择属于其父元素的特定类型的首个子元素(按照类型匹配, 不一定是父元素的第一个元素)的元素。

11.2. 例子

11.2.1. 代码


第一个段落, 但是p给换成了b。

第二个段落。

第三个段落。

第四个段落。

第五个段落。


11.2.2. 效果图

12. :last-of-type伪类

12.1. :last-of-type选择属于其父元素的特定类型的最后一个子元素(按照类型匹配, 不一定是父元素的第最后一个元素)的元素。

12.2. 例子

12.2.1. 代码


第一个段落。

第二个段落。

第三个段落。

第四个段落。

第五个段落, 但是p给换成了b。

12.2.2. 效果图

13. :only-child伪类

13.1. only-child选择属于其父元素的唯一子元素的元素(父元素只能有一个元素)。

14. :only-of-type伪类

14.1. only-of-type选择属于其父元素的特定类型的唯一子元素的元素(父元素可以有多个元素, 但是该类型只能有一个)。

14.2. 例子

14.2.1. 代码


body只有一个p元素, p:only-child和p:only-of-type都起作用。

第一个段落。


14.2.2. 效果图

15. :lang(en)伪类

15.1. :lang(en)伪类使你有能力为不同的语言定义特殊的规则。

15.2. 例子

15.2.1. 代码


文字开始段落中的引用的文字文字结束

This is a big quote


15.2.2. 效果图

16. :focus伪类

16.1. :focus选择器用于选取获得焦点的元素。

16.2. 例子

16.2.1. 代码


在文本框中点击, 您会看到黄色的背景:

First name:
Last name:

16.2.2. 效果图

17. :root伪类

17.1. :root选择器匹配文档根元素。

17.2. 在html中, 根元素始终是html元素。

18. :empty伪类

18.1. :empty选择器匹配没有子元素(包括文本节点, 也就是说该元素既没有子元素也不能包含文本)的元素。

18.2. 例子

18.2.1. 代码


第一个段落。

第二个段落。

第三个段落。


18.2.2. 效果图

19. :not伪类

19.1. :not(selector)选择器匹配非指定元素/选择器的元素。

19.2. 例子

19.2.1. 代码


第一个段落。

第二个段落。

第三个段落。

第四个段落。


19.2.2. 效果图

20. :target伪类

20.1. :target选择器可用于选取当前活动的目标元素。

20.2. URL带有后面跟有锚名称, 指向文档内某个具体的元素。这个被链接的元素就是目标元素(target element)。

20.3. 例子

20.3.1. 代码


点击下面的链接, :target选择器会突出显示当前活动的html锚。

跳转至内容 1

跳转至内容 2

内容 1...

内容 2...

注释: Internet Explorer 8以及更早的版本不支持:target选择器。


20.3.2. 效果图

21. enabled和disabled伪类

21.1. :enabled选择器匹配每个已启用的元素(大多用在表单元素上)。

21.2. :disabled选择器匹配每个被禁用的元素(大多用在表单元素上)。

21.3. 例子

21.3.1. 代码


First name:
Last name:
Country:

21.3.2. 效果图

22. 伪类列表


推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
author-avatar
IQBB_LongGang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有