当前位置: 首页 > news >正文

CSS的基本选择器及高级选择器(附详细示例以及效果图)

Hi i,m JinXiang


⭐ 前言 ⭐

本篇文章主要介绍HTML中CSS的基础选择及高级选择器(详解)以及部分理论知识


🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言


目录

⭐ CSS基本选择器:

⭐ CSS高级选择器

🍧一、层次选择器(重点)

1、概念

2、使用(附示例以及效果图)

3、总结

🍧二、结构伪类选择器(不常用)

1、概念

🍧三、属性选择器(重点)

1、概念

2、使用(附示例以及效果图)

3、总结


 CSS基本选择器:

CSS基本选择器是使用最广泛和最常见的选择器类型,用于选择HTML文档中的元素。基本选择器包括以下几种:

  • ①标签选择器:标签(HTML标签作为标签选择器的名称){声明}
    • 标签选择器总结:标签选择器直接应用于HTML标签
    • 示例:<p>测试标签选择器</p>
      CSS: p { color: pink; }
    • 效果图:
  • ②类选择器:
    • 创建:.class(类选择器也是类名称){声明}
    • 使用:<标签名 class="类名称">标签内容</标签名>
    • 类选择器总结:类选择器可在页面中多次使用
    • 示例:<label class="label_test">测试类选择器</label>
      CSS:.label_test {width: 200px;height: 200px;border: 4px solid black;background-color: pink;
      }
      
    • 效果图:
  • ③ID选择器:#ID(ID选择器也是ID名称){声明}
    •  ID选择器总结:ID选择器在同一个页面中只能使用一次
    • 示例:<a id="a_test">测试id选择器</a>
      CSS: #a_test{width: 300px;height: 301px;border: 1px solid black;
      }
    • 效果图:

基本选择器的优先级:ID选择器>类选择器>标签选择器

CSS高级选择器

一、层次选择器(重点)

1、概念

层次选择器是CSS中一种常见的选择器,用于选择具有特定层次关系的元素。通过层次选择器,可以选择父元素、子元素、兄弟元素等。

常见的层次选择器包括:

  • 1、后代选择器用空格表示。它选择某个元素的所有后代元素。例如,选择所有段落元素内部的 strong 元素可以使用 p strong 选择器。
  • 2、子元素选择器用>表示。它选择某个元素的直接子元素。例如,选择 ul 元素下的所有 li 元素可以使用 ul > li 选择器。
  • 3、相邻兄弟选择器用+表示。它选择某个元素的下一个相邻兄弟元素。例如,选择某个元素后面紧邻的 p 元素可以使用 p + p 选择器。
  • 4、通用兄弟选择器用~表示。它选择某个元素后面的所有兄弟元素。例如,选择某个元素后面的所有 p 元素可以使用 p ~ p 选择器。

层次选择器可以根据层次关系选择特定的元素,使得选择更加灵活和具体。

2、使用(附示例以及效果图)

①、后代选择器:p strong
  • 示例:<p><strong>后代选择器示例</strong></p>
  • CSS:p strong{ color: pink; }
  • 效果图:
②、子元素选择器: ul > li
  • 示例:<ul> <li>子选择器1</li><li>子选择器2</li> </ul>
  • CSS:ul>li{ background-color: #acacac; }
  • 效果图:
③、相邻兄弟选择器:p + p
  • 示例:<p>第一位同志</p> <p>第二位同志</p> <p>第三位同志</p>
  • CSS: p + p {color: pink;background-color: #acacac;
    }
  • 效果图:
④、通用兄弟选择器:p ~ p
  • 示例:<p>第一位同志</p> <p>第二位同志</p> <p>第三位同志</p>
  • p ~ p {color: pink;background-color: #acacac;
    }
  • 效果图:

3、总结

选择器名称选择器表示形式选择器作用
后代选择器p  strong选择某个元素的所有后代元素
子元素选择器ul > li选择某个元素的直接子元素
相邻兄弟选择器p + p选择某个元素的下一个相邻兄弟元素
通用兄弟选择器p ~ p择某个元素后面的所有兄弟元素

 二、结构伪类选择器(不常用)

1、概念

结构伪类选择器是CSS中一种常见的选择器,用于选择页面中满足特定结构的元素。它们根据元素在文档树中的位置和关系来进行选择。

常见的结构伪类选择器包括:

  • 1、first-child 选择器:选择某个元素作为其父元素的第一个子元素。
  • 2、last-child 选择器:选择某个元素作为其父元素的最后一个子元素。
  • 3、nth-child(n) 选择器:选择某个元素作为其父元素的第n个子元素。
  • 4、nth-last-child(n) 选择器:选择某个元素作为其父元素的倒数第n个子元素。
  • 5、only-child 选择器:选择某个元素作为其父元素的唯一一个子元素。
  • 6、nth-of-type(n) 选择器:选择某个元素作为其父元素中特定类型的第n个元素。
  • 7、nth-last-of-type(n) 选择器:选择某个元素作为其父元素中特定类型的倒数第n个元素。

结构伪类选择器可以根据元素在文档树中的位置和关系,灵活地选择特定的元素,从而实现页面样式的控制和布局。

三、属性选择器(重点)

1、概念

属性选择器是CSS中一种常见的选择器,用于根据元素的属性值来选择元素。属性选择器可以根据元素的属性值、属性存在与否,或属性值的特定关系来选择元素。

  • 1、A[attr]选择具有指定属性的元素
  • 2、A[attr=val]选择匹配具有属性attr的A元素,并且属性值为val(其中val区分大小写)
  • 3、A[attr^="val"]:选择匹配元素A,且A元素定义了属性attr,其属性值是以val开头的任意字符串
  • 4、A[attr$="val"]:选择匹配元素A,且A元素定义了属性attr,其属性值是以val结尾的任意字符串
  • 5、A[attr*="val"]:选择匹配元素A,且A元素定义了属性attr,其属性值包含了“val”

属性选择器提供了一种根据元素属性值来选择元素的灵活方式,可以根据实际需要进行选择和样式设置。

2、使用(附示例以及效果图)

 ①、选择指定属性元素:div[ class ]
  • 示例:<div class="div_test">属性选择器使用测试</div>
  • CSS:div[class] {color: aqua;width: 100px;height: 100px;background-color: #acacac;
    }
  • 效果图:
  ②、选择匹配指定属性的元素(区分大小写):div[ class ="div_test" ]
  • 示例:<div class="div_test">属性选择器使用测试</div>
  • CSS:div[class="div_test"] {color: red;width: 100px;height: 100px;background-color: aqua;
    }
  • 效果图:
  ③、选择匹配元素,其属性以指定值开头:div[ class  ^= "div"]
  • 示例:<div class="div_test">属性选择器使用测试</div>
  • CSS:div[class^= "div"] {color: black;width: 100px;height: 100px;background-color: aliceblue;
    }
  • 效果图:
   ④、选择匹配元素,其属性以指定值结尾:div[ class $= "test"]
  • 示例:<div class="div_test">属性选择器使用测试</div>
  • CSS:div[class$= "test"] {color: antiquewhite;width: 100px;height: 100px;background-color: beige;
    }
  • 效果图:
  ⑤、选择匹配元素,其属性中包含了指定值:div[ class *= "v" ]
  • 示例:<div class="div_test">属性选择器使用测试</div>
  • CSS:div[class*= "_"] {color: crimson;width: 100px;height: 100px;background-color: darkcyan;
    }
  • 效果图:

3、总结

选择器表示形式选择器作用
div[ class ]标签包含的属性
div[ class ="div_test" ]选择指定值
div[ class  ^= "div"]开头指定值
div[ class $= "test"]结尾指定值
div[ class *= "v" ]包含指定值

高级选择器可以让我们更加精确地选择目标元素,实现更复杂和细致的样式效果。但需要注意的是,过多的选择器和复杂的选择规则可能会影响页面性能和维护性,因此在使用高级选择器时应保持简洁和合理。

总结不易,希望uu们不要吝啬亲爱的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

相关文章:

CSS的基本选择器及高级选择器(附详细示例以及效果图)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中CSS的基础选择及高级选择器&#xff08;详解&#xff09;以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xf…...

股票价格预测 | Python实现基于Stacked-LSTM的股票预测模型,可预测未来(keras)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 以股票价格预测为例,基于Stacked-LSTM的股票预测模型(keras),可预测未来。 模型描述 LSTM 用于处理序列数据,如时间序列、文本和音频。相对于传统的RNN,LSTM更擅长捕获长期依赖关系,...

数据可视化---离群值展示

内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…...

LeetCode Hot100 51.N皇后

题目&#xff1a; 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的…...

机器学习 | 贝叶斯方法

不同于KNN最近邻算法的空间思维&#xff0c;线性算法的线性思维&#xff0c;决策树算法的树状思维&#xff0c;神经网络的网状思维&#xff0c;SVM的升维思维。 贝叶斯方法强调的是 先后的因果思维。 监督式模型分为判别式模型和生成式模型。 判别模型和生成模型的区别&#xf…...

缓存的定义及重要知识点

文章目录 缓存的意义缓存的定义缓存原理缓存的基本思想缓存的优势缓存的代价 缓存的重要知识点 缓存的意义 在互联网高访问量的前提下&#xff0c;缓存的使用&#xff0c;是提升系统性能、改善用户体验的唯一解决之道。 缓存的定义 缓存最初的含义&#xff0c;是指用于加速 …...

TrustZone之顶层软件架构

在处理器中的TrustZone和系统架构中,我们探讨了硬件中的TrustZone支持,包括Arm处理器和更广泛的内存系统。本主题关注TrustZone系统中发现的软件架构。 一、顶层软件架构 下图显示了启用TrustZone的系统的典型软件栈: 【注意】:为简单起见,该图不包括管理程序,尽管它们可…...

SpringBoot Whitelabel Error Page 报错--【已解决】

springboot 报错信息如下 这个报错页面就是个404 &#xff0c;代表你访问的url 没有对应的的requestmapping 其实没啥影响的一个问题&#xff0c;但是看到Error 就是不爽&#xff0c;改了他丫的 解决方法如下 一、调整application.properties配置【治标不治本】 server.err…...

02.Git常用基本操作

一、基本配置 &#xff08;1&#xff09;打开Git Bash &#xff08;2&#xff09;配置姓名和邮箱 git config --global user.name "Your Name" git config --global user.email "Your email" 因为Git是分布式版本控制工具&#xff0c;所以每个用户都需要…...

黑盒测试中关键截图如何打点

黑盒测试中关键截图如何打点Android黑盒测试过程中如何进行有效的打点是我们经常遇到的问题&#xff0c;我们一般会在脚本内部进行数据打点&#xff0c;也可以使用其他进程录屏或截图。那我们如何选取合适的方式进行打点记录呢&#xff1f;下图是对常用打点方式的统计&#xff…...

画图之C4架构图idea和vscode环境搭建篇

VS Code 下C4-PlantUML安装 安装VS Code 直接官网下载安装即可,过程略去。 安装PlantUML插件 在VS Code的Extensions窗口中搜索PlantUML,安装PlantUML插件。 配置VS Code代码片段 安装完PlantUML之后,为了提高效率,我们最好安装PlantUML相关的代码片段。 打开VS Cod…...

安卓小练习-校园闲置交易APP(SQLite+SimpleCursorAdapter适配器)

环境&#xff1a; SDK&#xff1a;34 JDK&#xff1a;20.0.2 编写工具&#xff1a;Android Studio 2022.3.1 整体效果&#xff08;视频演示&#xff09;&#xff1a; 小练习-闲置社区APP演示视频-CSDN直播 部分效果截图&#xff1a; 整体工作流程&#xff1a; 1.用户登录&…...

Pycharm 如何更改成中文版| Python循环语句| for 和 else 的搭配使用

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

智合同是怎么审合同的?

#智合同#审合同#AI#深度学习#自然语言处理#知识图谱 智合同采用深度学习、自然语言处理、知识图谱等人工智能技术&#xff0c;为企业提供专业的合同相关的智能服务。其服务包含&#xff1a;合同智能审查、合同要素智能提取、合同版本对比、合同智能起草、文本一致性对比、广告…...

使用Httpclient来替代客户端的jsonp跨域解决方案

最近接手一个项目&#xff0c;新项目需要调用老项目的接口&#xff0c;但是老项目和新项目不再同一个域名下&#xff0c;所以必须进行跨域调用了&#xff0c;但是老项目又不能进行任何修改&#xff0c;所以jsonp也无法解决了&#xff0c;于是想到了使用了Httpclient来进行服务端…...

测试工具Jmeter:设置中文界面

首先我们打开Jmeter所在的文件&#xff0c;进入bin目录&#xff0c;打开Jmeter.properties&#xff1a; 打开后找到languageen&#xff1a; 改为zh_CN: 保存关闭&#xff0c;然后再打开Jmeter&#xff1a; 英文并不会显得高级&#xff0c;能做到高效的性能测试才是高级的。...

K8s攻击案例:RBAC配置不当导致集群接管

01、概述 Service Account本质是服务账号&#xff0c;是Pod连接K8s集群的凭证。在默认情况下&#xff0c;系统会为创建的Pod提供一个默认的Service Account&#xff0c;用户也可以自定义Service Account&#xff0c;与Service Account关联的凭证会自动挂载到Pod的文件系统中。 …...

运行hive的beelin2时候going to print operations logs printed operations logs

运行hive的beelin2时候going to print operations logs printed operations logs 检查HiveServer2的配置文件hive-site.xml&#xff0c;确保以下属性被正确设置&#xff1a; <property><name>hive.async.log.enabled</name><value>false</value>…...

从 MySQL 到 DolphinDB,Debezium + Kafka 数据同步实战

Debezium 是一个开源的分布式平台&#xff0c;用于实时捕获和发布数据库更改事件。它可以将关系型数据库&#xff08;如 MySQL、PostgreSQL、Oracle 等&#xff09;的变更事件转化为可观察的流数据&#xff0c;以供其他应用程序实时消费和处理。本文中我们将采用 Debezium 与 K…...

六.聚合函数

聚合函数 1.什么是聚合函数1.1AVG和SUM函数1.2MIN和MAX函数1.3COUNT函数 2.GROUP BY2.1基本使用2.2使用多个列分组2.3GROUP BY中使用WITH ROLLUP 3.HAVING3.1基本使用3.2WHERE和HAVING的区别 4.SELECT的执行过程4.1查询的结构4.2SELECT执行顺序4.3SQL执行原理 1.什么是聚合函数…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...