news 2026/7/14 5:02:06

css选择器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
css选择器

本文将系统介绍CSS中常见的五类选择器:

  • 复合选择器
  • 关系选择器
  • 属性选择器
  • 伪类选择器
  • 交互类伪类选择器

一、复合选择器(组合条件)

复合选择器通过组合多个选择条件,选中同时满足所有条件的元素。

交集选择器

语法:

选择器1选择器2 { 样式声明 }

选中同时匹配多个选择器的元素。

示例:

div.red { font-size: 24px; }

该规则表示: 选中同时是<div>标签且具有class="red"的元素。

注意事项:

  1. 若包含标签选择器,必须置于首位;
  2. 优先级由各选择器权重综合决定。

并集选择器(群组选择器)

语法:

选择器1, 选择器2, 选择器3 { 样式声明 }

作用:为多个选择器统一设置相同样式。

示例:

h1, h3 { color: orange; }

效果:h1h3元素都将显示橙色文字。


二、关系选择器(层级关系)

根据HTML元素的层级关系进行选择。

子选择器(>)

语法:

父元素 > 子元素 { 样式声明 }

作用:仅选择直接子元素。

示例:

div > span { color: red; }

仅影响<div>内第一层的<span>元素。


后代选择器(空格)

语法:

祖先 后代 { 样式声明 }

作用:选择所有层级的后代元素。

示例:

div span { font-size: 30px; }

区别:

  • 子选择器(>):仅选择直接子元素;
  • 后代选择器(空格):选择所有层级后代。

兄弟选择器

相邻兄弟选择器(+)

语法:

兄 + 弟 { 样式声明 }

选择紧邻的下一个兄弟元素。

通用兄弟选择器(~)

语法:

兄 ~ 弟 { 样式声明 }

选择该元素之后的所有兄弟。

示例:

p + span { background-color: red; }

为紧接<p>后的<span>添加红色背景。


三、属性选择器

根据元素属性及其值进行选择。

常用语法:

选择器含义
[属性名]具有该属性的元素
[属性名=值]属性值完全匹配
[属性名^=值]属性值以指定内容开头
[属性名$=值]属性值以指定内容结尾
[属性名*=值]属性值包含指定内容

示例:

[title*="ac"] { background-color: pink; }

所有title属性包含"ac"的元素背景变为粉色。


四、伪类选择器(状态类)

根据元素状态或位置进行选择。

顺序伪类

伪类功能
:first-child第一个子元素
:last-child最后一个子元素
:nth-child(n)第n个子元素(从1计数)
:first-of-type同类型第一个元素
:last-of-type同类型最后一个元素
:nth-of-type(n)同类型第n个元素

示例:

li:nth-of-type(2n) { background-color: pink; }

为列表中所有偶数项设置粉色背景。


否定伪类:not()

语法:

选择器:not(条件) { 样式声明 }

示例:

li:not(.l1) { color: red; }

class="l1"外的所有li元素文字变红。


五、交互类伪类选择器

主要用于超链接和交互元素,根据用户操作动态改变样式。

链接相关伪类

伪类含义
:link未访问链接
:visited已访问链接
:hover鼠标悬停
:active鼠标点击时

示例:

a:link { color: red; } a:visited { color: blueviolet; } a:hover { color: green; } a:active { color: orange; }

书写顺序记忆:LVHA

:link → :visited → :hover → :active

必须严格遵循此顺序,否则样式可能被覆盖。


鼠标交互示例

button:hover + .box { display: block; background-color: pink; }

鼠标悬停按钮时,显示相邻的.box元素并设置粉色背景。


总结与思维导图

类型作用示例
复合选择器多条件组合div.redh1, h3
关系选择器层级关系div > spanp + span
属性选择器属性匹配[title*="ac"]
伪类选择器状态/位置:nth-child():not()
交互伪类用户操作:hover:active

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 11:15:43

QtScrcpy终极指南:跨平台Android投屏控制完全手册

还在为手机屏幕操作不便而困扰&#xff1f;QtScrcpy这款开源工具彻底改变了Android设备与电脑的交互方式。作为一款基于Qt框架开发的跨平台投屏控制软件&#xff0c;它能够通过USB或WiFi连接&#xff0c;在Windows、macOS、Linux系统上实现几乎零延迟的手机屏幕镜像和操作控制。…

作者头像 李华
网站建设 2026/7/14 21:19:30

GitHub中文插件:一键告别英文界面烦恼!

GitHub中文插件&#xff1a;一键告别英文界面烦恼&#xff01; 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub全英文界面…

作者头像 李华
网站建设 2026/7/12 9:09:18

Vue-Office快速上手:3步搞定Web端Office文档预览

Vue-Office快速上手&#xff1a;3步搞定Web端Office文档预览 【免费下载链接】vue-office 项目地址: https://gitcode.com/gh_mirrors/vu/vue-office 还在为Vue项目中集成Office文件预览功能而烦恼吗&#xff1f;Vue-Office组件库为您提供了一站式的文件预览解决方案&a…

作者头像 李华
网站建设 2026/7/8 13:23:50

Vetur中自定义Vue2标签支持配置:从零实现

让 Vue2 的自定义标签在 VS Code 中“活”起来&#xff1a;Vetur 配置全解析你有没有遇到过这样的场景&#xff1f;在一个维护多年的 Vue2 项目里&#xff0c;团队为了统一结构&#xff0c;在.vue文件中引入了<i18n>、<docs>或<layout>这类语义化标签。结果一…

作者头像 李华
网站建设 2026/7/14 21:44:49

为什么你的电脑需要一款窗口置顶工具?3个关键场景揭秘

为什么你的电脑需要一款窗口置顶工具&#xff1f;3个关键场景揭秘 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 在现代多任务工作环境中&#xff0c;窗口置顶工具已成为提升多…

作者头像 李华
网站建设 2026/7/14 5:05:40

5分钟精通Android投屏:QtScrcpy跨平台控制实战手册

5分钟精通Android投屏&#xff1a;QtScrcpy跨平台控制实战手册 【免费下载链接】QtScrcpy QtScrcpy 可以通过 USB / 网络连接Android设备&#xff0c;并进行显示和控制。无需root权限。 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 还在为手机屏幕太小而…

作者头像 李华