CSS中的常见选择器

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝

在这里插入图片描述


往期热门专栏回顾

专栏描述
Java项目实战介绍Java组件安装、使用;手写框架等
Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、Vue
Java微服务实战Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
Java基础篇Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
Springboot篇从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
Spring MVC篇从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
华为云服务器实战华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
Java爬虫通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
Vue实战讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
Spring讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等

前言

      本文介绍了CSS中的常见选择器,选择器的出现可以让我们实现对具体的元素标签进行定制,因此我们要掌握好各类选择器的使用。

1、选择器介绍

      在CSS(层叠样式表)中,选择器是一种用于选择 HTML 元素以应用特定样式的模式或规则。选择器通过匹配 HTML 元素的不同属性、关系或状态来确定要应用样式的目标元素。

      CSS选择器的作用是根据选择器的匹配规则,选择出目标元素,并对其应用指定的样式。选择器可以根据元素的标签名、类名、ID、属性、状态等进行选择。

1.1、元素选择器

      元素选择器(Element Selector)是CSS中最基本和最常见的选择器。它使用HTML元素的标签名作为选择器,用于选择匹配标签名的所有元素。

      元素选择器的语法非常简单,只需在CSS中使用标签名作为选择器即可。例如,要选择所有的段落元素,可以使用p作为选择器。

1.1.1、标签选择器

      使用HTML标签名作为选择器,选择匹配标签名的所有元素。例如,p选择所有的段落元素,h1选择所有的一级标题元素。

p {
  background-color: yellow;
}

1.1.2、通配符选择器

使用*作为选择器,匹配所有的元素。例如,*选择所有的元素。

* {
  background-color: yellow;
}

1.1.3、类型选择器

使用元素的特定类型作为选择器,选择匹配指定类型的元素。例如,input选择所有的输入框元素,a选择所有的锚点元素。

input {
  background-color: yellow;
}

      选择器非常灵活,可以用于选择单个元素或多个匹配的元素,并针对其应用相应的样式。可以通过组合元素选择器和其他选择器来实现更具体和精确的选择。

      需要注意的是,元素选择器会选择所有匹配的元素,因此在使用时要确保选择器的准确性和误用的风险。

1.2、类选择器

类选择器(Class Selector)是CSS中一种常用的选择器,用于选择具有相同类名的元素。它以点.开头,后面跟着类名。
类选择器的语法如下:

.classname {
  /* CSS属性和值 */
}

      其中,点.表示类选择器,后面紧跟着类名(可以是任何有效的CSS类名)。在HTML中,当一个元素的class属性值与类选择器匹配时,该元素就会应用类选择器中定义的样式。

      以下是一个具体的示例,假设我们有一些HTML元素使用了相同的类名highlight,我们可以通过类选择器来为它们设置样式:

.highlight {
  background-color: yellow;
  color: red;
}

      上述代码将选择所有类名为highlight的元素,并设置它们的背景颜色为黄色,文本颜色为红色。
需要注意的是,类选择器可以重复使用,一个元素可以拥有多个类名。这样可以更灵活地为元素应用不同的样式。例如:

<div class="highlight bold">这是一个示例文本</div>

      上述代码中的div元素同时具有highlightbold两个类名,可以分别通过.highlight.bold类选择器来为其设置样式。

2、ID选择器

      ID选择器(ID Selector)是CSS中一种常用的选择器,用于通过元素的唯一标识符选择特定的元素。它以井号#开头,后面跟着ID名称。

ID选择器的语法如下:

#idname {
  /* CSS属性和值 */
}

      其中,井号#表示ID选择器,后面紧跟着ID名称(可以是任何有效的CSS ID名称)。在HTML中,当一个元素的id属性值与ID选择器匹配时,该元素就会应用ID选择器中定义的样式。

      需要注意的是,ID在整个HTML文档中应该是唯一的,即每个元素只能有一个ID,并且ID不能以数字开头。因为ID具有唯一性,所以使用ID选择器可以精确地选择页面上的特定元素。

以下是一个具体的示例,假设我们有一个具有唯一ID的<div>元素:

<div id="mydiv">这是一个示例文本</div>

我们可以使用ID选择器来为其设置样式:

#mydiv {
  background-color: yellow;
  color: red;
}

      上述代码将选择具有ID为mydiv<div>元素,并设置其背景颜色为黄色,文本颜色为红色。

      需要注意的是:ID选择器具有更高的优先级,如果同时使用类选择器和ID选择器来选择相同的元素,ID选择器的样式将覆盖类选择器的样式。因此,应谨慎使用ID选择器,以确保样式的准确应用。

3、交集选择器

      交集选择器(Intersection Selector)是CSS中一种选择器,用于选择同时具有多个类名的元素。它使用类选择器的语法,并将多个类名连在一起,中间没有任何符号。

交集选择器的语法如下:

.class1.class2 {
  /* CSS属性和值 */
}

      .class1.class2表示类选择器,通过这种组合的方式,选择具有同时包含类名.class1.class2的元素。这样可以在不修改HTML结构的情况下,针对特定的元素应用样式。

      以下是一个具体的示例,假设我们有一个HTML中的<div>元素,同时具有类名.highlight.bold

<div class="highlight bold">这是一个示例文本</div>

我们可以使用交集选择器来为它设置样式:

.highlight.bold {
  font-weight: bold;
  color: red;
}

      上述代码将选择同时具有.highlight.bold类名的<div>元素,并设置其字体加粗和字体颜色为红色。

      需要注意的是,交集选择器要求元素同时具有所有选择器中指定的类名,只有在两个类名同时存在时才会应用样式。如果两个类名分别位于不同的元素上,则不会匹配。这种方式有助于更加精确地选择元素,并为其应用特定的样式。

4、并集选择器

      并集选择器(Union Selector)是CSS中一种选择器,用于同时选择多个元素或选择多个类名或ID的元素。它使用逗号(,)将多个选择器或类名/ID名连接在一起。

并集选择器的语法如下:

selector1, selector2 {
  /* CSS属性和值 */
}

      selector1selector2表示选择器,通过逗号分隔,将多个选择器组合在一起。这样可以同时选择多个元素,并为它们应用相同的样式。

4.1、并集选择器选择多个元素

h1, h2, h3 {
  color: blue;
  font-weight: bold;
}

      上述代码将选择页面上的所有<h1><h2><h3>元素,并设置它们的字体颜色为蓝色、字体加粗。

4.2、并集选择器选择多个类名

.highlight, .bold {
  background-color: yellow;
  color: red;
}

      上述代码将选择所有具有.highlight类名和所有具有.bold类名的元素,并设置它们的背景颜色为黄色,文本颜色为红色。

4.3. 并集选择器选择多个ID

#mydiv, #mysection {
  border: 1px solid black;
  padding: 10px;
}

      上述代码将选择具有ID为mydiv和具有ID为mysection的元素,并设置它们的边框为1px实线黑色,内边距为10px。
      需要注意的是,并集选择器可以组合不同类型的选择器,如标签选择器、类选择器、ID选择器等,以便同时选择不同类型的元素并应用相同的样式。使用并集选择器可以减少代码重复,并为多个元素一次性应用相同的样式。

5、后代选择器

      后代选择器(Descendant Selector)是CSS中一种选择器,用于选择元素的后代元素,即在某个元素内部的子孙元素。它使用空格()将两个选择器连接在一起。

后代选择器的语法如下:

selector1 selector2 {
  /* CSS属性和值 */
}

      selector1selector2表示选择器,通过空格将它们连接在一起。选择器1选择了父元素(祖先元素),而选择器2选择了后代元素(子孙元素)。这样可以根据元素的层级关系来选择并应用样式。
以下是一个具体的例子,我们有一个HTML结构

<div class="container">
  <h1>标题</h1>
  <p>这是一个段落</p>
</div>

我们可以使用后代选择器来选择<div>元素内部的<h1>元素并设置样式

.container h1 {
  color: blue;
}

      上述代码将选择具有.container类名的<div>元素内部的<h1>元素,并将其文字颜色设置为蓝色。

      需要注意的是,后代选择器会匹配所有符合条件的后代元素,无论它们的层级有多深。选择器2可以是任何有效的CSS选择器,可以是标签选择器、类选择器、ID选择器等。

      后代选择器的优势在于它可以非常灵活地选择元素的特定后代,而不受层级的限制。通过合理运用后代选择器,可以准确地选择并应用样式于所需的元素。

6、子代选择器

      子代选择器(Child Selector)是CSS中一种选择器,用于选择元素的直接子元素(子节点),即在某个父元素下的直接子元素。它使用大于号(>)将两个选择器连接在一起。

子代选择器的语法如下

selector1 > selector2 {
  /* CSS属性和值 */
}

      selector1selector2表示选择器,通过大于号连接在一起。选择器1选择了父元素,而选择器2选择了父元素的直接子元素。这样可以选择并应用样式于父元素的直接子元素,而不会选择孙子元素及更深层级的后代元素。

以下是一个具体的例子,我们有一个HTML结构:

<div class="container">
  <div>
    <div>
      <h1>
        标题
      </h1>
    </div>
  </div>
  <div>
    <p>这是一个段落</p>
  </div>
  <h1>11111111</h1>
  <p>这是一个段落</p>
</div>
.container > p {
    color: blue;
}

上述代码将选择.container元素下所有的第一代后代<p>元素,并将它们的文字颜色设置为蓝色。

<ul>
  <li>列表项1</li>
  <li>列表项2</li>
  <li>列表项3</li>
</ul>

我们可以使用子代选择器来选择<ul>元素下直接的<li>元素并设置样式

ul > li {
  color: red;
}

      上述代码将选择<ul>元素下直接的<li>元素,并将它们的文字颜色设置为红色。

      需要注意的是,子代选择器只选择父元素的直接子元素,不包括更深层级的后代元素。选择器2可以是任何有效的CSS选择器,可以是标签选择器、类选择器、ID选择器等。

      子代选择器在一些特定的布局需求下非常有用,可以在层级结构中精确选择特定的子元素,并为其应用样式。同时,子代选择器的使用还能够提高CSS选择器的性能,因为它的范围被限制在了直接子元素上。

7、兄弟选择器

      兄弟选择器(Sibling Selector)是CSS中一种选择器,用于选择元素的兄弟元素,即与某个元素拥有相同父元素的其他元素。它使用加号(+)将两个选择器连接在一起。

兄弟选择器的语法如下:

selector1 + selector2 {
  /* CSS属性和值 */
}

      其中,selector1selector2表示选择器,通过加号连接在一起。选择器1选择了某个元素,而选择器2选择了与选择器1拥有相同父元素的下一个兄弟元素。这样可以选择并应用样式于兄弟元素。

以下是一个具体的例子,我们有一个HTML结构

<ul>
  <li>列表项1</li>
  <li>列表项2</li>
  <li>列表项3</li>
</ul>

ul li:first-child + li {
  color: blue;
}

      上述代码将选择<ul>元素下第一个<li>元素的兄弟元素(第二个和第三个<li>元素),并将它们的文字颜色设置为蓝色。

      需要注意的是,兄弟选择器只会匹配在相同父元素下的下一个兄弟元素,不会匹配更远的兄弟元素。选择器2可以是任何有效的CSS选择器,例如标签选择器、类选择器、ID选择器等。

      兄弟选择器在一些特定的布局需求下非常有用,可以选择特定元素的下一个兄弟元素并为其应用样式。通过使用兄弟选择器,可以在不使用额外的类名或ID的情况下,精确选择并应用样式于特定的兄弟元素。

8、属性选择器

      属性选择器(Attribute Selector)是CSS中一种用于选择具有指定属性的元素的选择器。属性选择器允许根据元素的属性及其属性值来选择并应用样式。

属性选择器有以下三种常见的语法形式:

    1. 存在和值属性选择器:
      [attribute]:选择具有指定属性的元素。
      [attribute=value]:选择属性值与指定值完全匹配的元素。
    1. 部分值属性选择器:
      [attribute^=value]:选择属性值以指定值开头的元素。
      [attribute$=value]:选择属性值以指定值结尾的元素。
      [attribute*=value]:选择属性值包含指定值的元素。
    1. 精确值和多值属性选择器:
      [attribute|=value]:选择属性值与指定值完全匹配或以指定值及连字符开头的元素。
      [attribute~=value]:选择属性值中包含指定值作为一个单词(空格分隔)的元素。
      [attribute*=value]:选择属性值与指定值完全匹配或以指定值及空格开头的元素。

以下是一些具体的例子,说明如何使用属性选择器:

/* 选择所有有href属性的元素 */
[href] {
  color: blue;
}
 
/* 选择class属性值为"button"的元素 */
[class="button"] {
  background-color: yellow;
}
 
/* 选择src属性值以".jpg"结尾的元素 */
[src$=".jpg"] {
  border: 1px solid black;
}
 
/* 选择class属性值包含"active"的元素 */
[class*="active"] {
  font-weight: bold;
}

      使用属性选择器,可以根据元素的属性及其属性值来选择元素,从而实现对元素的样式控制。属性选择器提供了一种灵活的方式来选择元素,使得样式可以根据元素的属性动态变化或特定条件下应用。


资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【网络原理】使用Java基于UDP实现简单客户端与服务器通信

目录 &#x1f384;API介绍&#x1f338;DatagramSocket&#x1f338;DatagramPacket&#x1f338;InetSocketAddress &#x1f333;回显客户端与服务器&#x1f338;建立回显服务器&#x1f338;回显客户端 ⭕总结 我们用Java实现UDP数据报套接字编程&#xff0c;需要借用以下…

大数据平台 hive 部署

大数据平台 hive 部署 平台部署知识 文章讲解了 hive 的安装与部署 需要 Hadoop 以及 MySQL。 目录 文章目录 大数据平台 hive 部署目录前期准备解压 hive 包配置 hive 的环境变量解决 jar 冲突 内嵌模式部署修改 hive-env.sh 文件初始化元数据库 使用 derby启动 HDFS 和 hiv…

每日一题leetcode第2834:找出美丽数组的最小和

目录 一.题目描述 二.思路及优化 三.C代码 一.题目描述 二.思路及优化 首先我们看到这个题&#xff0c;就是根据给出的数组元素个数N&#xff0c;从[1&#xff0c;N]找出N个元素&#xff0c;使得N个元素的和最小&#xff0c;其中随便抽两个数出来&#xff0c;两个数之和不能为…

贝叶斯优化CNN-LSTM回归预测(matlab代码)

贝叶斯优化CNN-LSTM回归预测matlab代码 贝叶斯优化方法则采用贝叶斯思想&#xff0c;通过不断探索各种参数组合的结果&#xff0c;根据已有信息计算期望值&#xff0c;并选择期望值最大的组合作为最佳策略&#xff0c;从而在尽可能少的实验次数下达到最优解。 数据为Excel股票…

【MySQL】MySQL 的 SSL 连接以及连接信息查看

MySQL 的 SSL 连接以及连接信息查看 在上篇文章中&#xff0c;我们学习过 MySQL 的两种连接方式&#xff0c;回忆一下&#xff0c;使用 -h 会走 TCP 连接&#xff0c;不使用 -h 可以使用另两种方式来走 UnixSocket 连接。我们就接着这个话题再聊点别的&#xff0c;首先要纠正一…

计算机服务器中了locked勒索病毒怎么解密,locked勒索病毒解密流程

科技的发展带动了企业生产&#xff0c;越来越多的企业开始利用计算机服务器办公&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但随之而来的网络安全威胁也引起了众多企业的关注。近日&#xff0c;云天数据恢复中心接到许多企业的求助&#xff0c;企业的计算机服务器…

图形库实战丨C语言扫雷小游戏(超2w字,附图片素材)

目录 效果展示 游玩链接&#xff08;无需安装图形库及VS&#xff09; 开发环境及准备 1.VS2022版本 2.图形库 游戏初始化 1.头文件 2.创建窗口 3.主函数框架 开始界面函数 1.初始化 1-1.设置背景颜色及字体 1-2.处理背景音乐及图片素材 1-3.处理背景图位置 2.选…

代码随想录算法训练营第四天|24.两两交换链表中的节点、19.删除链表的倒数第N的节点、07.链表相交、142.环形链表II

代码随想录算法训练营第四天|24.两两交换链表中的节点、19.删除链表的倒数第N的节点、07.链表相交、142.环形链表II 24.两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成…

【UE5】创建蓝图

创建GamePlay需要的相关蓝图 在内容游览器文件夹中创建文件夹&#xff0c;命名为Blueprints&#xff0c;用来放这个项目的所有蓝图(Blueprint) 在Blueprints文件夹下新建文件夹GamePlay,用存放GamePlay相关蓝图 在Blueprints文件夹下创建文件夹Character,存放角色相关蓝图 在Ga…

idea连接远程服务器

1. 双击shift&#xff0c;出现如下界面 2. 远程连接 原文来自这个up主的&#xff0c;点击蓝色字体就可以跳转啦&#xff01; 输入主机ip、用户名、密码&#xff0c;点击Test Connection验证&#xff0c;最后点击ok添加成功 有用的话记得给俺点个赞&#xff0c;靴靴~

学会与自己和解

最近半年来&#xff0c;在学习智能驾驶方面的技术&#xff0c;但有些文档和资料不方便分享&#xff0c;有一段时间没有写 写文档啦&#xff01;那就写一些技术之外的东西吧&#xff0c;最近也一直在学心理建设&#xff0c;学会与自己和解 行动 唯有自己先行动起来&#xff0c;…

vue组件之间通信方式汇总

方式1&#xff1a;props和$emit props和$emit仅仅限制在父子组件中使用 1.props&#xff1a;父组件向子组件传递数据 1.1 代码展示 <template><div><!-- 这是父组件 --><div>父组件中的基本数据类型age的值是:{{this.age}}</div><div>…

Web Servlet

目录 1 简介2 创建Servlet项目并成功发布运行3 新加Servlet步骤4 Servlet项目练习5 Servlet运行原理6 操作 HTTP Request头的方法(部分方法示例)7 操作 HTTP Response头的方法(部分方法示例)8 两种重定向(页面跳转)方法9 Cookie9.1 Cookie工作原理9.2 cookie构成9.3 Servlet 操…

LeetCode 1976.到达目的地的方案数:单源最短路的Dijkstra算法

【LetMeFly】1976.到达目的地的方案数&#xff1a;单源最短路的Dijkstra算法 力扣题目链接&#xff1a;https://leetcode.cn/problems/number-of-ways-to-arrive-at-destination/ 你在一个城市里&#xff0c;城市由 n 个路口组成&#xff0c;路口编号为 0 到 n - 1 &#xff…

202441读书笔记|《笠翁对韵》—— 金菡萏,玉芙蓉,酒晕微酡琼杏颊,香尘浅印玉莲双

202441读书笔记|《笠翁对韵》——金菡萏&#xff0c;玉芙蓉&#xff0c;酒晕微酡琼杏颊&#xff0c;香尘浅印玉莲双 《作家榜名著&#xff1a;笠翁对韵》作者李渔&#xff0c;霍俊明。是所有词句都有注音的一本书&#xff0c;轻松学不认识的字&#xff0c;非常朗朗上口的对偶词…

2024年如何批量下载知乎回答和知乎文章导出pdf?

如何批量下载知乎回答和知乎文章导出pdf&#xff1f;用scraper浏览器扩展 2024 年开发的第一个脚本神器 下载的所有回答html内容&#xff0c;文件名为回答日期加标题。 接着批量将html转换pdf&#xff0c;效果如图&#xff1a; 再将所有pdf合成一个pdf文件&#xff1a; 每个回…

VUE Element例子学习

参考:【前端】VueElement UI案例&#xff1a;通用后台管理系统-项目总结_vue elementui 管理系统-CSDN博客 之前参考的el-admin-web太复杂了&#xff0c;不是纯净的demo. 所以找了一圈资料&#xff0c;找到了这个博客&#xff0c;很合适&#xff0c;有例子的代码&#xff0c;…

vue中性能优化

目录 1. 编码优化 2. 源码优化 3. 打包优化 4. 利用 Vue Devtools 总结 Vue.js 作为一个强大的前端框架&#xff0c;提供了丰富的功能和工具来帮助开发者构建高效的 Web 应用。然而&#xff0c;在开发过程中&#xff0c;性能优化仍然是一个需要关注的问题。以下是对 Vue.j…

Solidity攻击合约:重入攻击与危害分析

以太坊智能合约开发中&#xff0c;重入攻击是一种常见的安全漏洞。这种攻击通常发生在合约的递归调用中&#xff0c;攻击者通过构造恶意交易&#xff0c;使得原本合约在执行过程中不断调用自身或其他合约&#xff0c;从而耗尽合约的Gas&#xff08;交易费用&#xff09;&#x…

数据结构与算法----复习Part 13 (单模式串匹配算法)

本系列是算法通关手册LeeCode的学习笔记 算法通关手册&#xff08;LeetCode&#xff09; | 算法通关手册&#xff08;LeetCode&#xff09; (itcharge.cn) 目录 一&#xff0c;朴素匹配算法&#xff08;Brute Force&#xff09; 二&#xff0c;Rabin Karp算法 三&#xff…
最新文章