前端成长之路:CSS复合选择器

复合选择器

在CSS中,可以根据选择器的类型将选择器分为基础选择器和复合选择器。 基础选择器就是前面提到过的类选择器、id选择器、标签选择器等;而复合选择器就是在基础选择器的基础之上,将基本选择器进行组合形成的。 复合选择器是由两个及以上的基础选择器,通过不同的方式组合而成的。复合选择器可以更加准确、高效的选择目标元素。

后代选择器

后代选择器又称为包含选择器,该选择器可以选择父元素中的子元素。其写法就是将外层标签写在前面,内层标签写在后面,中间使用空格进行分隔。当标签发生嵌套时,内层标签就成为了外层标签的后代。

如这个代码所示,这是一个后代选择器,当标签发生嵌套(不管嵌套的层级有多深),只要li标签在ul标签里面,那么li就成为外层标签ul的后代,上述后代选择器选择的是ul标签中的所有的li(不是ul中的li就不会被选择):

可以看到不在ul中的li标签,是不会被这个ul li后代选择器选择到的,所以说其字体样式没有改变。

使用后代选择器的注意事项:

  1. 后代选择器是一个复合选择器,需要两个元素,后面的元素是前面元素的后代,两个元素之间使用空格分隔。
  2. 后代选择器,顾名思义,该选择器选择的是后代元素。
  3. 后代只要在父元素的嵌套中,不管嵌套层级多深,都可以选择到。
  4. 后代选择器的构成元素可以是任意的基础选择器。

子选择器

子元素选择器(子选择器)只能选择某元素最近一级的子元素,简单理解就是子选择器将选择该元素的直接子元素(只能有一级的嵌套,就像Java中的直接子类),这点和后代选择器有很大的差别(后代选择器可以选择该元素的所有后代,不管嵌套的层级有多深,都可以选择)。这可以从二者的名字看出,后代选择器,顾名思义,只要是后代都可以选;子选择器,顾名思义,只能选择儿子(最近那一级的元素)。

子选择器的构成是:元素1 > 元素2 {CSS样式},这和后代选择器很像,元素2就是元素1的直接后代(子元素),这个选择器也会选择元素2:

此时,在这个子选择器中,div标签就是父级元素,p标签就是div标签中一级嵌套(直接嵌套)的子级元素,该选择器选择的是div标签中直接的p标签,特别注意:若使用子选择器,那么子元素必须是父元素的“亲儿子”,也就是说两个标签之间只能有一级的嵌套关系:

可以清楚看见,只有一级嵌套关系的p标签才被子选择器选中了,而二级嵌套的p标签就没有被选中,所以说其样式没有改变。总之,子选择器中的子元素必须在父元素中直接嵌套,否则无法选中。

并集选择器

并集选择器可以选择多组标签,同时为这些标签定义相同的样式。通常用于集合声明

并集选择器是各个选择器通过","连接而成,任何形式的选择器都可以作为并集选择器的一部分:

以看到这个并集选择器就是一个简单的类选择器和一个复合的子选择器连接而成,会选择nav这个类的元素和ul中的直接嵌套的li标签:

在并集选择器中,不同的选择器要使用","(逗号)进行分隔,为了方便理解可以将逗号理解为“和”的意思,那么上述CSS代码就相当于是:类选择器选择nav这个类和子选择器选择ul中的li。

伪类选择器

伪类选择器主要是用于向某些选择器添加特殊的效果。它必须结合其他选择器进行使用,主要目的是为特定状态或位置的元素添加特殊样式。 例如::hover伪类可以为鼠标悬停在元素上时的元素添加样式;active伪类可以为元素被激活(例如用户点击元素时)时添加样式。

链接伪类选择器

链接伪类选择器是CSS伪类选择器中专门用于处理超链接(<a> 元素)不同状态的一类选择器,它们允许你根据超链接的状态(如未访问、已访问、鼠标悬停、激活)来为其添加不同的样式,以增强用户体验和页面交互性。

1.:link该伪类选择器是用于尚未被用户访问过的超链接元素(就是用户还没有点击过的超链接),主要是用于设置未访问链接的初始样式(颜色、字体等)。

a:link {color: blue;text-decoration: none;
}

这样设置CSS,未访问过的超链接就会是蓝色字体,并且没有下划线(默认是有的)

2.:visited该伪类选择器是用于用户已经访问过的超链接元素(用户已经点击过的超链接),当用户访问了一个超链接之后,该超链接就会被标记为已访问状态,此时:visited伪类选择器就可以选中,并且为其设置样式:

a:visited {color: purple;text-decoration: line-through; 
}

这样设置CSS,已经访问过的超链接就会是紫色字体,并且会有一条删除线。

3.:hover当用户将鼠标指针悬停在超链接元素上时,该伪类选择器会被触发。通常用于创建鼠标悬停时的视觉效果,例如改变链接的颜色、添加背景色或改变字体大小等,以吸引用户的注意力。

a:hover { color: red; background-color: yellow;
}

这样设置CSS,当用户的鼠标指针悬停在超链接元素上时,字体就会变成红色,并且背景会变为黄色,达到吸引用户注意的效果。

4.:active当用户按下鼠标按键并在该元素上按住鼠标时,该元素就处于激活状态。而active伪类选择器就是为激活状态的元素添加样式:

a:active {color: red;text-decoration: underline;
}

这样设置CSS,当用户在该链接上按下鼠标时,链接元素处于激活状态,字体颜色变为红色,并且会有一条下划线来提醒用户。

因为超链接标签<a>在浏览器中具有默认的样式,所以说在通常情况下我们需要给链接单独指定样式,而伪类选择器就可以很好的为链接添加样式。一个元素可以有多个伪类选择器,但是想要使用多个选择器必须遵循伪类选择器的书写顺序::link->:visited->:hover->:active,不按照这个顺序书写多个伪类选择器,那么将会失效。

:focus伪类选择器

:focus伪类选择器用于选择获取了焦点的表单元素。焦点就是光标,在一般情况下,focus伪类选择器一般是针对于表单元素使用的:比如说当我的光标移动到input表单元素上,按钮变色提醒:

 

 

 

 

 

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

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

相关文章

在数字孪生开发领域threejs现在的最新版本已经更新到多少了?

在数字孪生开发领域three.js现在的最新版本已经更新到多少了&#xff1f; 在数字孪生开发领域&#xff0c;three.js作为一款强大的JavaScript 3D库&#xff0c;广泛应用于Web3D可视化、智慧城市、智慧园区、数字孪生等多个领域。随着技术的不断进步和需求的日益增长&#xff0…

HTML入门级学习笔记1【超详细】

目录 一、计算机基础知识 2.1 文件和文件夹管理 2.2 特殊按键和快捷键 2.3 打字速度 二、互联网的原理 3.1 上网就是请求数据 3.2 服务器 3.3 浏览器 3.4 HTTP 三、HTML初步认识 4.1 认识什么是纯文本文件txt 4.2 HTML是负责描述文档语义的语言 四、Sublime 五、HTML骨架和基本…

【网络】传输层协议UDP/TCP网络层IP数据链路层MACNAT详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.传输层协议 UDP 1.1 传输层 1.2 端口号 1.3 UDP 协议 1.3.1 UDP 协议端格式 1.3.2 UDP 的特点 1.3.3 面向数据报 1…

计算机网络技术基础:3.计算机网络的拓扑结构

网络拓扑结构是指用传输媒体互连各种设备的物理布局&#xff0c;即用什么方式把网络中的计算机等设备连接起来。将工作站、服务站等网络设备抽象为点&#xff0c;称为“节点”&#xff1b;将通信线路抽象为线&#xff0c;称为“链路”。由节点和链路构成的抽象结构就是网络拓扑…

SecureCRT/FX使用[无限试用SecureCRT][新版本SecureFX双击站点总是自动跳到SecureCRT]

无限试用SecureCRT 本文摘录于&#xff1a;https://blog.csdn.net/qq_52162404/article/details/139703993#:~:textSecureCRT只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 我这里修改BAT如下,同时删除CRT和FX的license: echo off re…

Nacos系列:Nacos 控制台手册

引言 Nacos是阿里巴巴中间件部门开源的一款用于服务发现和配置管理的产品&#xff0c;Nacos 控制台主要旨在于增强对于服务列表、健康状态管理、服务治理、分布式配置管理等方面的管控能力&#xff0c;以便进一步帮助用户降低管理微服务应用架构的成本。 一、访问 Nacos 控制台…

frida打印日志字体加颜色

平时写frida hook 脚本&#xff0c;有时打印出来的日志太多都是一个颜色不美观。 于是找AI 问了一下frida打印日志字体加颜色的方法 // ANSI 转义码 const RESET “\x1b[0m”; const RED “\x1b[31m”; const GREEN “\x1b[32m”; const YELLOW “\x1b[33m”; const BLUE …

Thunderfury, Blessed Blade of the Windseeker

Thunderfury, Blessed Blade of the Windseeker 雷霆之怒&#xff0c;逐风者的祝福之剑 她应该是wow里面造型最帅&#xff0c;最酷的模型超大武器&#xff0c;而且特效触发频率很高&#xff0c;群拉效果非常好。 雷霆之怒&#xff0c;逐风者的祝福之剑 - 物品 - NFU魔兽世界1…

ubuntu+ros新手笔记(三)

系统ubuntu22.04 ros2 humble 1. 设置ubuntu终端字体大小 点击Terminal右上角的三条横线—>Preferences—>Unnamed—>Text—>勾选Custom font—>点击右侧的字号&#xff08;我的显示的是12&#xff09;—>最下方Size处设置字号大小—>Select—>设置完…

Deveco报错Only files in a module can be previewed

创建工程后需要看看预览的效果&#xff0c;却出现了这个错误 到Index.ets文件下重新构建工程 详细可以查询 鸿蒙报错&#xff08;Only files in a module can be previewed&#xff09;

第六届地博会开幕,世界酒中国菜美食文化节同期启幕推动地标发展

第六届知交会暨地博会开幕&#xff0c;辽黔欧三地馆亮点纷呈&#xff0c;世界酒中国菜助力地理标志产品发展 第六届知交会暨地博会盛大开幕&#xff0c;多地展馆亮点频出&#xff0c;美食文化节同期启幕推动地标产业发展 12月9日&#xff0c;第六届粤港澳大湾区知识产权交易博…

计算机毕业设计PySpark+PyFlink+Hive地震预测系统 地震数据分析可视化 地震爬虫 大数据毕业设计 Hadoop 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

C# 探险之旅:第二十七节 - 类型class(属性) —— 给你的类穿上“属性”的外衣

嘿&#xff0c;探险家们&#xff01;欢迎再次踏上我们的C#奇幻之旅。今天&#xff0c;我们要聊聊一个超级有趣的话题——类的“属性”。想象一下&#xff0c;如果我们要给类穿上一件酷炫的外衣&#xff0c;那属性就是这件外衣上的各种口袋和装饰&#xff0c;让类变得既实用又拉…

【学习记录】Docker初探-容器创建与拉取(2)

参考资料 Window下玩转Docker Desktop哔哩哔哩bilibili Docker镜像推送至Docker Hub的完整教程-百度开发者中心 (baidu.com) 为什么需要Docker&#xff1f; Docker可以在不同服务器之间转移打包好的程序和环境&#xff0c;从而方便测试。打包好的程序和环境可以被称之为容器…

MongoDB学习路线图

‌MongoDB 在多种场景下都是理想的数据库解决方案。让我们讨论一些你应该考虑使用 MongoDB 的关键情形。 处理大量数据 当处理可能需要大量读写操作的大量数据时&#xff0c;MongoDB 是一个出色的选择&#xff0c;因为它具有高性能和水平扩展性。通过利用复制和分片&#xff…

IOS通过WDA自动化中遇到的问题

IOS自动化遇到的问题 搭建WDA环境中遇到的问题1、XCode unsupport iphone xxx.2、创建Bundle Identifier出现问题&#xff1a;Communication with Apple failed3、创建Bundle Identifier出现问题&#xff1a;Automatic signing failed \Signing certificate is invalid4、创建B…

基于卷积神经网络的图像二分类检测模型训练与推理实现教程 | 幽络源

前言 对于本教程&#xff0c;说白了&#xff0c;就是期望能通过一个程序判断一张图片是否为某个物体&#xff0c;或者说判断一张图片是否为某个缺陷。因为本教程是针对二分类问题&#xff0c;因此主要处理 是 与 不是 的问题&#xff0c;比如我的模型是判断一张图片是否为苹果…

【razor】echo搭配relay功能分析

echo 要搭配relay 实现作者说relay在linux上跑,可以模拟丢包、延迟目前没看到如何模拟。relay监听9200,有俩作用 echopeer1 发relay,replay 把peer1的包给peer2 ,实现p2p能力。 接收端:采集后发送发给relay的 接收端的地址就是自己,的地址就是本地的9200,因此是让relay接…

轩凯生物被警示,财务内控不规范,华泰证券又被处罚

作者&#xff1a;Tracy 来源&#xff1a;IPO魔女 11月21日&#xff0c;南京轩凯生物科技股份有限公司&#xff08;简称“轩凯生物”&#xff09;被交易所下达书面警示的自律监管函。同时其保荐机构华泰联合证券和会计师事务所天衡&#xff0c;均受到监管处罚。这是今年来&…

【C++习题】19.数组中第K个大的元素

题目&#xff1a;数组中第K个大的元素 链接&#x1f517;&#xff1a;数组中第K个大的元素 题目&#xff1a; 代码&#xff1a; class Solution { public:int findKthLargest(vector<int>& nums, int k) {// 将数组中的元素先放入优先级队列中priority_queue<i…