【Java 进阶篇】CSS 选择器详解

在这里插入图片描述

CSS(层叠样式表)是一种用于描述网页上元素样式的语言。要想有效地使用CSS,了解CSS选择器是至关重要的,因为它们允许你选择要应用样式的HTML元素。在本文中,我们将详细介绍CSS选择器的各种类型和用法,以便你能够更好地掌握这一关键概念。

1. 什么是CSS选择器?

CSS选择器是一种模式,用于选择HTML文档中的一个或多个元素,并为这些元素应用样式。选择器基于元素的标签名称、类、ID、属性等特征来选择元素。通过选择器,你可以精确地定义哪些元素将受到样式的影响。

2. 基本选择器

2.1 标签选择器

标签选择器是最简单的选择器,它通过HTML元素的标签名称来选择元素。例如,要选择所有段落元素 <p> 并将它们的文字颜色设置为红色,可以使用以下样式:

p {color: red;
}

这将使所有段落文本变为红色。

2.2 类选择器

类选择器允许你选择具有特定类名的元素。类选择器以点 . 开头,后面跟随类名。例如,要选择所有具有 button 类的按钮元素,并将它们的背景颜色设置为蓝色,可以使用以下样式:

.button {background-color: blue;
}

2.3 ID选择器

ID选择器允许你选择具有特定ID属性的元素。ID选择器以井号 # 开头,后面跟随ID名称。ID在整个HTML文档中应该是唯一的。例如,要选择具有 header ID的标题元素,并将它们的字体大小设置为24像素,可以使用以下样式:

#header {font-size: 24px;
}

3. 复合选择器

复合选择器允许你组合多个选择器,以便更精确地选择元素。以下是一些常见的复合选择器:

3.1 后代选择器

后代选择器(空格)允许你选择嵌套在其他元素内部的元素。例如,要选择所有在 <div> 元素内部的段落元素,并将它们的文字颜色设置为绿色,可以使用以下样式:

div p {color: green;
}

3.2 子选择器

子选择器(>)允许你选择作为另一个元素的直接子元素的元素。例如,要选择所有 <ul> 元素下的直接子元素 <li> 并将它们的文本颜色设置为橙色,可以使用以下样式:

ul > li {color: orange;
}

3.3 相邻兄弟选择器

相邻兄弟选择器(+)允许你选择与另一个元素相邻的元素。例如,要选择所有紧跟在标题元素 <h2> 后面的段落元素 <p> 并将它们的字体设置为斜体,可以使用以下样式:

h2 + p {font-style: italic;
}

3.4 通用兄弟选择器

通用兄弟选择器(~)允许你选择与另一个元素具有相同父元素的所有元素。例如,要选择所有与标题元素 <h2> 具有相同父元素的段落元素 <p> 并将它们的文字颜色设置为灰色,可以使用以下样式:

h2 ~ p {color: gray;
}

4. 属性选择器

属性选择器允许你选择具有特定属性的元素。属性选择器使用方括号 [],并在方括号内指定要匹配的属性和属性值。以下是一些常见的属性选择器示例:

4.1 属性选择器

属性选择器允许你选择具有特定属性的元素。属性选择器使用方括号 [],并在方括号内指定要匹配的属性和属性值。以下是一些常见的属性选择器示例:

4.1.1 属性存在选择器

属性存在选择器([attribute])用于选择具有指定属性的所有元素,而不考虑其值。例如,要选择所有具有 title 属性的元素,并将它们的背景颜色设置为黄色,可以使用以下样式:

[title] {background-color: yellow;
}
4.1.2 属性值精确匹配选择器

属性值精确匹配选择器([attribute=value])用于选择具有指定属性和精确属性值的元素。例如,要选择所有 type 属性值为 text 的输入框元素,并将它们的边框颜色设置为蓝色,可以使用以下样式:

input[type="text"] {border-color: blue;
}
4.1.3 属性值前缀匹配选择器

属性值前缀匹配选择器([attribute^=value])用于选择具有指定属性且属性值以指定值开头的元素。例如,要选择所有 src 属性值以 https 开头的图片元素,并将它们的边框颜色设置为绿色,可以使用以下样式:

img[src^="https"] {border-color: green;
}
4.1.4 属性值后缀匹配选择器

属性值后缀匹配选择器([attribute$=value])用于选择具有指定属性且属性值以指定值结尾的元素。例如,要选择所有 href 属性值以 .pdf 结尾的链接元素,并将它们的文本颜色设置为红色,可以使用以下样式:

a[href$=".pdf"] {color: red;
}
4.1.5 属性值包含匹配选择器

属性值包含匹配选择器([attribute*=value])用于选择具有指定属性且属性值包含指定值的元素。例如,要选择所有 class 属性值包含 active 的元素,并将它们的背景颜色设置为橙色,可以使用以下样式:

[class*="active"] {background-color: orange;
}

5. 伪类选择器

伪类选择器允许你选择处于特定状态或位置的元素,而不是基于元素的属性或标签名称。以下是一些常见的伪类选择器示例:

5.1 链接伪类选择器

链接伪类选择器用于选择链接元素的不同状态。例如,要选择未被访问的链接并将其颜色设置为蓝色,可以使用以下样式:

a:link {color: blue;
}

同样,你还可以使用 :visited 伪类选择已访问的链接。

5.2 :hover 伪类选择器

:hover 伪类选择器用于选择鼠标悬停在元素上时的状态。例如,要选择鼠标悬停在按钮元素上时,并将其背景颜色设置为浅灰色,可以使用以下样式:

button:hover {background-color: lightgray;
}

5.3 :nth-child 伪类选择器

:nth-child 伪类选择器用于选择一组元素中的第 n 个元素。例如,要选择每个列表中的第偶数个列表项,并将它们的文本颜色设置为绿色,可以使用以下样式:

li:nth-child(even) {color: green;
}

5.4 :not 伪类选择器

:not 伪类选择器用于选择不匹配某一条件的元素。例如,要选择除了具有类名 special 的元素之外的所有段落元素,并将它们的字体颜色设置为蓝色,可以使用以下样式:

p:not(.special) {color: blue;
}

5.5 :first-child 伪类选择器

:first-child 伪类选择器用于选择一组元素中的第一个元素。例如,要选择每个列表中的第一个列表项,并将它们的文本颜色设置为红色,可以使用以下样式:

li:first-child {color: red;
}

6. 伪元素选择器

伪元素选择器允许你选择元素的特定部分,而不是整个元素。以下是一些常见的伪元素选择器示例:

6.1 ::before 和 ::after 伪元素选择器

::before 和 ::after 伪元素选择器用于在元素的内容之前或之后插入虚拟的元素。这些虚拟元素可以用来添加装饰性内容。例如,要在每个段落之前添加一个引号图标,可以使用以下样式:

p::before {content: "\201C"; /* Unicode编码表示左双引号 */
}

6.2 ::first-letter 伪元素选择器

::first-letter 伪元素选择器用于选择元素的第一个字母或字符。例如,要选择每个段落的第一个字母并将其设置为大写,可以使用以下样式:

p::first-letter {text-transform: uppercase;
}

6.3 ::first-line 伪元素选择器

::first-line 伪元素选择器用于选择元素的第一行文本。例如,要选择每个段落的第一行文本并将其设置为斜体,可以使用以下样式:

p::first-line {font-style: italic;
}

7. 结合选择器

你可以结合多个选择器来更精确地选择元素。这是一些常见的结合选择器的示例:

7.1 选择多个类名

如果一个元素具有多个类名,你可以将它们组合在一起选择。例如,要选择具有 btnprimary 两个类名的按钮元素,并将其背景颜色设置为蓝色,可以使用以下样式:

.button.primary {background-color: blue;
}

7.2 选择特定标签下的元素

你可以结合标签选择器和类选择器来选择特定标签下的元素。例如,要选择 <div> 元素内部的具有 info 类名的段落元素,并将其文字颜色设置为绿色,可以使用以下样式:

div .info {color: green;
}

7.3 复杂的选择器组合

你可以结合多个选择器来创建更复杂的选择器组合。例如,要选择具有 main ID 的 <div> 元素内部的所有直接子元素 <p>,并将它们的字体颜色设置为蓝色,可以使用以下样式:

div#main > p {color: blue;
}

8. 总结

CSS选择器是CSS中非常重要的概念,它们允许你选择要应用样式的HTML元素。本文介绍了各种类型的选择器,包括基本选择器、复合选择器、属性选择器、伪类选择器和伪元素选择器,以及如何结合它们来更精确地选择元素。通过深入了解这些选择器,你将能够更好地掌握CSS并创建精美的网页布局和样式。希望这篇文章对你有所帮助!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分库分表(3)——ShardingJDBC实践

一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由 JDBC、Proxy 和 Sidecar&#xff08;规划中&#xff09;这 3 款相互独立&#xff0c;却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分…

基于YOLOv8模型的足球目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的足球目标检测系统可用于日常生活中检测与定位足球目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集…

IDEA的使用(三)Debug(断点调试)(IntelliJ IDEA 2022.1.3版本)

编程过程中如果出现错误&#xff0c;需要查找和定位错误时&#xff0c;借助程序调试可以快速查找错误。 编写好程序后&#xff0c;可能出现的情况&#xff1a; 1.没有bug。 使用Debug的情况&#xff1a; 2.运行后&#xff0c;出现错误或者异常信息&#xff0c;但是通过日志文件…

Linux shell编程学习笔记9:字符串运算 和 if语句

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算&#xff0c;同样也需要进行根据条件进行流程控制&#xff0c;提供了if、for、while、until等语句。 上期学习笔记中我们研究了字符串数据的使用&#xff0c;今天我们研…

win1011安装MG-SOFT+MIB+Browser+v10b

文章目录 安装MG-SOFTSNMP服务配置安装MG-SOFT启动MIB-Browser以及错误解决MIB Browser使用 安装MG-SOFT win10和win11安装基本一样&#xff0c;所以参照下面的操作即可&#xff01; SNMP服务配置 打开设置&#xff0c;应用和功能&#xff0c;可选功能&#xff0c;选择添加功…

2023年【G1工业锅炉司炉】考试题及G1工业锅炉司炉模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年G1工业锅炉司炉考试题为正在备考G1工业锅炉司炉操作证的学员准备的理论考试专题&#xff0c;每个月更新的G1工业锅炉司炉模拟考试祝您顺利通过G1工业锅炉司炉考试。 1、【多选题】TSGG0001-2012《锅炉安全技术监…

【OSPF宣告——network命令与多区域配置实验案例】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;喜欢编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc…

【Vue】vscode格式刷插件Prettier以及配置项~~保姆级教程

文章目录 前言一、下载插件二、在项目内创建配置文件1.在根目录创建&#xff0c;src同级2.写入配置3.每个字段含义 总结 前言 vscode格式刷&#xff0c;有太多插件了&#xff0c;但是每个的使用&#xff0c;换行都不一样。 这里我推荐一个很多人都推荐了的Prettier 一、下载插…

爬取微博热榜并将其存储为csv文件

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 前言1.…

Kafka日志索引详解以及生产常见问题分析与总结

Kafka 的核心集群机制&#xff0c;重点保证了在复杂运行环境下&#xff0c;整个 Kafka 集群如何保证 Partition 内消息 的一致性。这就相当于一个军队&#xff0c;有了完整统一的编制。但是&#xff0c;在进行具体业务时&#xff0c;还是需要各个 Broker 进行分工&#xff0c;…

Mac热门软件推荐Paste mac 中文激活版 剪切板工具

Paste for Mac是一款运行在Mac OS平台上的剪切板小工具。它拥有华丽的界面效果&#xff0c;并且每一条记录可显示&#xff08;预览&#xff09;文本、图片等记录的完整内容。此外&#xff0c;Paste for Mac可以记录最近指定条数的剪切板信息&#xff0c;方便用户随时调用&#…

【opencv】windows10下opencv4.8.0-cuda版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda版本源码编译教程前言准备工具cuda/cudnncmakeopencv4.5.0opencv_contrib CMake编译VS2019编译可…

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

Data security.隐私保护-多方安全计算技术基础

文章目录 Data security.隐私保护-多方安全计算技术基础一、多方安全计算的背景1.定义2.分类2.1不诚实参与方数量2.2敌手行为2.3敌手计算能力2.4输出可达性2.5计算模型2.6腐化策略&#xff08;攻击者确定攻破并控制参与方的策略&#xff09;2.7通信网络 3.设计方法3.1秘密共享&…

如何在Apache和Resin环境中实现HTTP到HTTPS的自动跳转:一次全面的探讨与实践

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

设计模式 - 观察者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中&#xff0c;观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应&#xf…

rustlings本地开发环境配置

克隆自己的仓库 首先我们要在github上找到自己仓库并把它克隆到本地 git clone https://github.com/LearningOS/rust-rustlings-2023-autumn-******.git下载插件 rust-analyzer和Git Graph一个可以用来解析rust代码&#xff0c;另一个可以可视化管理git代码库 下载rustling…

基于安卓android微信小程序音乐播放器

运行环境 小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 项目介绍 音乐播放器小程序的设计主要是对系统所要实现的功能进行详细考虑&#xff0c;确定所要…

SpringCloud学习二

基本介绍&#xff1a; Eureka Server&#xff08;Eureka 服务端&#xff09;是Netflix开源的一款用于构建分布式系统中的服务发现和注册中心的组件。它在微服务架构中扮演着关键的角色&#xff0c;允许不同的微服务应用程序注册自己&#xff0c;并查询其他服务的位置信息&…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…