htmlCSS-----高级选择器

 目录

前言

伪类选择器

状态类

结构类

 伪元素选择器

属性选择器 


前言

        前面我们学习了CSS中的相关选择器(链接html&CSS-----CSS选择器(上)_灰勒塔德的博客-CSDN博客    html&CSS-----CSS选择器(下)_灰勒塔德的博客-CSDN博客)今天我们接着学习比较高级的选择器,下面就一起来去看看吧!

伪类选择器

当你希望元素在特定的状态下发生样式的变化时,可以使用伪类选择器。

  • 状态类

    写法介绍举例
    :hover鼠标悬停a:hover{color:pink;}
    :link未被访问的链接(特指a标签)a:link{color:red};
    :visited被访问过的链接(特指a标签)a:visited{color:blue;}
    :active被点击按下状态a:active{color:green;}

 :hover :active 不仅仅能用在a标签上。

:hover最为常用最为重要。

可以进一步在伪类后进行选择,比如:#wrap:hover .nav{display:none;

写法介绍举例
:focus获得焦点状态(接收键盘事件或其他用户输入的元素都允许 :focus 选择器。)input:focus{border:1px solid blue;}
:checked(单选/多选)表单被勾选状态input:checked{background-color:#aaa;}

 下面看个示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{font-size: 30px;}.first ul li:hover{color: violet;}.second a:link{/* 这里可以改变未被访问时的a标签颜色(样式) */color: red;}.third{color: green;}.forth:active{color: blue;}</style>
</head>
<body><!-- :hover选择器 --><div class="first"><ul><li>《Re:从零开始的异世界生活》</li><li>《来着新世界》</li><li>《紫罗兰永恒花园》</li></ul></div><!-- :link选择器 --><div class="second"><a href="www.baidu.com">访问百度</a></div><!-- :visited选择器 --><div class="third"><a href="www.baidu.com" target="_blank">访问baidu</a></div><!-- :active选择器 --><div class="forth">点我变颜色,看看吧</div>
</body>
</html>

 效果如下:

1691821211078

结构类

写法介绍举例
E:nth-child(n)这个表示选择列表中的倒数第n个标签p:nth-child(2){color:red;}
E:nth-of-type(n)E元素父级的第n个E元素,无视其他元素p:nth-of-type(2){color:red;}
E:first-childE元素父级的第一个子元素(该子元素需要满足E的选择规则,不满足则不会选中任何元素)p:first-child{color:red;}
E:last-childE元素父级的最后一个子元素(该子元素需要满足E的选择规则,不满足则不会选中任何元素)p:last-child{color:red;}

上述选择器 n 所表示的可以是一个 数字 或者 奇数odd 或者 偶数even 或者 一个表达式。

 :nth-child(n) :nth-of-type(n)有对应的“倒着数”属性 :nth-last-child(n) :nth-last-of-type(n)

 下面看个示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{font-size: 30px;}ul li:first-child{color: red;}ul li:last-child{color: red;}</style>
</head>
<body><ul><div>start</div><li>1</li><li>2</li><li>3</li><!-- <div>end</div> --></ul>
</body>
</html>

效果: 这里要注意first-child和last-child这两个选择器的使用,因为这里作用的标签必须是父类元素的第一个或者最后一个,否则不起效果,如上所示。

 伪元素选择器

伪类选择器相当于在某种情况下添加一个虚拟类名,而伪元素选择器则是相当于创建了一个虚拟元素。

写法介绍举例
E::before相当于在E元素的最前面添加一个额外的子元素#wrap::before{content:"Hello World!"}
E::after相当于在E元素的最后面添加一个额外的子元素#wrap::after{content:"Hello World!"}

必须拥有 content 样式,上述两个伪元素才会生效。

创建的子元素是一个行内元素

::after常用来清除浮动。

content 除了写文字之外,还可以用url指定一张图片等其他写法。

        /* 消除浮动自适应问题的写法 */E::after{content: '';display: block;clear: both; }

属性选择器 

这一类选择器跟正则匹配搭配使用,实际上并不是怎么用到,比较少用的那种,我们可以去选择性的去使用 

[attr]属性选择器(拥有attr标签属性)[title]{ color:red; }
[attr=val]属性选择器(拥有标签属性attr并值为val)[target=_blank]{ color:red; }
[attr*=val]属性选择器(拥有标签属性attr并值包含val)[src*=baidu]{border:5px solid pink;}
[attr$=val]属性选择器(拥有标签属性attr并值以val结尾)[src~=jpg]{ border:5px solid pink; }
[attr^=val]属性选择器(拥有标签属性attr并值以val开头)[class^=nav]{ background:pink; }
选择规则1选择规则2复合选择器(多个规则来匹配元素)div.nav.left{ width:100px; } 有nav和left类名的div标签

 下面看个示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{font-size: 30px;}/* 这里匹配到的是含有o字母的选择器 */div[class*='o']{color: blueviolet;}</style>
</head>
<body><div class="hhh">哈喽哦</div><div class="food">吃饭了吗</div><div class="look">快看快看</div>
</body>
</html>

效果:

 好了,以上就是今天的全部内容了,我们下一期再见!

分享一张壁纸:

咒术回战 - 知乎

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

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

相关文章

计算机视觉中的Transformer

几十年来&#xff0c;理论物理学家一直在努力提出一个宏大的统一理论。通过统一&#xff0c;指的是将被认为是完全不同的两个或多个想法结合起来&#xff0c;将它们的不同方面证明为同一基础现象。一个例子是在19世纪之前&#xff0c;电和磁被看作是无关的现象&#xff0c;但电…

基于java的汽车改装方案网站设计与实现

摘要 本文主要讲述了基于SpringBootMySql开发技术开发的汽车改装方案网站的设计与实现。这里的汽车改装方案网站是通过一个平台使所有的汽车爱好者们可以不用出门就可以体验到专业的汽车改装方案设计服务。现实生活中如果需要进行汽车改装的方案设计&#xff0c;往往要跑很多次…

【大数据之Kafka】三、Kafka生产者之消息发送流程及同步异步发送API

将外部传送给过来的数据发送到kafka集群。 1 发送原理 &#xff08;1&#xff09;创建main()线程&#xff0c;创建producer对象&#xff0c;调用send方法&#xff0c;经过拦截器&#xff08;可选&#xff09;、序列化器、分区器。 &#xff08;2&#xff09;分区器将数据发送…

【Android Framework (十二) 】- 智能硬件设备开发

文章目录 前言智能硬件的定义与应用智能硬件产品开发流程智能硬件开发所涉及的技术体系概述关于主板选型主板CPU芯片的选择关于串口通信 总结 前言 针对我过往工作经历&#xff0c;曾在一家智能科技任职Android开发工程师&#xff0c;简单介绍下关于任职期间接触和开发过的一些…

DDPM: Denoising Diffusion Probabilistic Models

DDPM: Denoising Diffusion Probabilistic Models 去噪扩散模型前向过程-加噪声反向过程-去噪声 去噪扩散模型 论文题目&#xff1a;Denoising Diffusion Probabilistic Models (DDPM) 论文来源&#xff1a;NIPS, 2020 论文地址&#xff1a;https://arxiv.org/abs/2006.11239 论…

RH850从0搭建Autosar开发环境【24】- Davinci Configurator之DEM模块配置详解(上)

DEM模块配置详解 - 上 一、Autosar中DEM模块简介1.DEM对其他模块的依赖2.DEM模块架构2.1 DEM模块Dem Satellite(s) 和Master2.2 诊断事件处理2.2.1 基于计数器的算法2.2.2 基于时间的算法三、配置错误项处理3.1 容器DemEventParameter3.2 容器DemOperationCycleRef3.3 容器DemO…

13.3 目标检测和边界框

锚框的计算公式 假设原图的高为H,宽为W 详细公式推导 以同一个像素点为锚框&#xff0c;可以生成 (n个缩放 m个宽高比 -1 )个锚框 锚框的作用&#xff1a; 不用直接去预测真实框的四个坐标&#xff0c;而是&#xff1a; 1.先生成多个锚框。 2.预测每个锚框里是否含有要预测…

C++:哈希表——模拟散列表

模拟散列表 维护一个集合&#xff0c;支持如下几种操作&#xff1a; 1.“I x”&#xff0c;插入一个数x 2.“Q x”&#xff0c;询问数x是否在集合中出现过 现在要进行N次操作&#xff0c;对于每个询问操作输出对应的结果 输入格式 第一行包含整数N&#xff0c;表示操作数量 …

【Linux】【驱动】杂项设备驱动

【Linux】【驱动】杂项设备驱动 Linux三大设备驱动1. 我们这节课要讲的杂项设备驱动是属于我们这三大设备驱动里面的哪个呢?2.杂项设备除了比字符设备代码简单&#xff0c;还有别的区别吗?3.主设备号和次设备号是什么? 挂载驱动 杂项设备驱动是字符设备驱动的一种&#xff0…

小程序制作教程:从零开始搭建企业小程序

在如今的数字化时代&#xff0c;企业介绍小程序成为了企业展示与推广的重要工具。通过企业介绍小程序&#xff0c;企业可以向用户展示自己的品牌形象、产品服务以及企业文化等内容&#xff0c;进而提高用户对企业的认知度和信任度。本文将介绍如何从零开始搭建一个企业介绍小程…

Linux常用命令详细大全

目录 1、查看目录与文件&#xff1a;ls2、切换目录&#xff1a;cd3、显示当前目录&#xff1a;pwd4、创建空文件&#xff1a;touch5、创建目录&#xff1a;mkdir6、查看文件内容&#xff1a;cat7、分页查看文件内容&#xff1a;more8、查看文件尾内容&#xff1a;tail9、拷贝&a…

小程序 vant 项目记录总结 使用 scss 分享 订阅消息 wxs 分包 echarts图表 canvas getCurrentPages页面栈

小程序 vant vant 下载 npm init -ynpm i vant/weapp -S --production修改 app.json 将 app.json 中的 “style”: “v2” 去除 修改 project.config.json {..."setting": {..."packNpmManually": true,"packNpmRelationList": [{"p…

域名配置HTTPS

一、注册域名 这个可以在各大平台注册&#xff0c;具体看一下就会注册了&#xff0c;自己挑选一个自己喜欢的域名。 步骤一般也就是先实名&#xff0c;实名成功了才能注册域名。 二、办理SSL证书 这里使用的是阿里云的SSL免费证书 1、申请证书 二、填写申请 三、域名绑定生…

公司电脑三维图纸加密、机械图挡加密软件

机械图纸加密软件的问世&#xff0c;让很多的网络公司都大受其带来的工作中的便利。在安装了机械图纸加密软件后&#xff0c;不仅可以很好的管理员工在工作时的上网娱乐&#xff0c;在对整个公司员工的工作效率上也有着明显的提高&#xff0c;那么对于机械图纸加密软件的具体特…

【C#】静默安装、SQL SERVER静默安装等

可以通过cmd命令行来执行&#xff0c;也可以通过代码来执行&#xff0c;一般都需要管理员权限运行 代码 /// <summary>/// 静默安装/// </summary>/// <param name"fileName">安装文件路径</param>/// <param name"arguments"…

word 应用 打不开 显示一直是正在启动中

word打开来显示一直正在启动中&#xff0c;其他调用word的应用也打不开&#xff0c;网上查了下以后进程关闭spoolsv.exe,就可以正常打开word了

演进式架构

演进能力是一种元特征和保护其他所有架构特征的架构封装器IEEE 的软件架构定义中的41 视图模型。它关注不同角色的不同视角&#xff0c;将整个系统划分成了逻辑视图、开发视图、进程视图和物理视图架构师确定了可审计性、数据、安全性、性能、合法性和伸缩性是该应用的关键架构…

机器学习:特征工程之特征预处理

目录 特征预处理 1、简述 2、内容 3、归一化 3.1、鲁棒性 3.2、存在的问题 4、标准化 ⭐所属专栏&#xff1a;人工智能 文中提到的代码如有需要可以私信我发给你&#x1f60a; 特征预处理 1、简述 什么是特征预处理&#xff1a;scikit-learn的解释&#xff1a; provide…

linux系统服务学习(六)FTP服务学习

文章目录 FTP、NFS、SAMBA系统服务一、FTP服务概述1、FTP服务介绍2、FTP服务的客户端工具3、FTP的两种运行模式&#xff08;了解&#xff09;☆ 主动模式☆ 被动模式 4、搭建FTP服务&#xff08;重要&#xff09;5、FTP的配置文件详解&#xff08;重要&#xff09; 二、FTP任务…

Python基础语法入门(第二十天)——文件操作

一、基础内容 在Python中&#xff0c;路径可以以不同的表现形式进行表示。以下是一些常用的路径表现形式&#xff1a; 1. 绝对路径&#xff1a;它是完整的路径&#xff0c;从根目录开始直到要操作的文件或文件夹。在Windows系统中&#xff0c;绝对路径以盘符开始&#xff0c;…