CSS常用十大选择器(理论+代码实操)

HTML代码实例

注意:拷贝后本地运行注意head标签中的link标签的href属性是否正确

我的目录结构:
在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="../css/selector.css"></head><body><!--元素选择器--><a href="https://www.baidu.com/">这是一个a标签</a><!--id选择器--><div id="aa">aa-div</div><!--类选择器--><div class="AA">AA-div1</div><div class="AA">AA-div2</div><!--属性选择器--><br><br><em lang="en" class="em1">english</em><br><br><em lang="zh" class="em1">中文</em> <br><br><em lang="fr">french</em><br><br><em lang="ru">ruissa</em><br><br><!--包含选择器--><div class="BB0"><p>1111</p><div><p class="BB2">BB-div内部的p</p></div></div><p class="BB">BB-div外部的p</p><!--子选择器--><table class="TB"><thead><tr><th>1</th><th>2</th><th id="th">3</th><th>4</th><th>5</th></tr></thead><tbody><tr><th>1-1</th><th>1-2</th></tr><tr><th>2-1</th><th>2-2</th></tr></tbody></table><!--兄弟选择器--><ol><li>早睡早起</li><li class="BRO">多吃蔬菜</li><li>心情舒畅</li><li>多多运动</li></ol><!--伪类选择器--><a class="weiLei" href="https://www.tencent.com/zh-cn/index.html">腾讯官网</a><!--伪元素选择器--><div>伪元素选择器------所有div元素的第一个汉字放大,加粗,红色</div></body>
</html>

元素选择器

直接用html标签命名,对整个html文档的全部此标签生效

/*元素选择器*/
a {/*对所有的a标签生效*/font-size: 22px;color: brown;
}

在这里插入图片描述

id选择器

#+id名称,根据标签的id属性进行选择,id由用户自定义,建议保证唯一性

所有标签都具有id属性

在这里插入图片描述

/*id选择器*/
#aa {background: aquamarine;
}

在这里插入图片描述
首字母字号变大+红色是伪元素选择器的效果,我们稍后就讲

class选择器

.+class名称使用,根绝标签的class属性选择

所有的标签都有class属性

在这里插入图片描述

.AA {width: 500px;height: 200px;background: antiquewhite;
}

在这里插入图片描述

属性选择器

标签名[属性名],可以根据属性值进行多种类型的匹配
在这里插入图片描述

/*1. 是否存在*/
em[lang] {color: red;
}/*2. 属性=“”*/
em[lang="zh"] {font-size: 100px;
}
/* class属性的=可以简写*/
em.em1 {font-weight: bolder;
}/*3. 属性以“”开头*/
em[lang^="e"] {background: greenyellow;
}/*4. 属性包含“”*/
em[lang*=r] {font-size: 50px;font-weight: lighter;
}/*5. 属性以“”结尾*/
em[lang$="u"] {color: cornflowerblue;}

属性是否存在

所有em标签中lang属性不为空的,字体都会变成红色

在这里插入图片描述

russia被其他效果覆盖了,其实原本也是红色

属性 = xxx

em标签中,lang标签 = zh的标签也是有的,“中文”变成了100像素大小

如果选中的属性是class属性,em[class = xxx]可以简写为em.xxx

属性以xxx开始

en属性值以e开始,所以背景变成了黄绿色

属性包含xxx

fr属性和ru属性都包含r,所以他们两个都会变成50px字号+字体更细

属性以xxx结尾

ru属性值以u结尾,所以字体颜色会变成天蓝色,覆盖掉之前的红色

包含选择器

不严格的父子关系,只要包括即可

中间的空格不写,很容易与属性选择器中的属性 = xxx的class属性简写的情况搞混,千万要注意是否有空格
在这里插入图片描述

/*包含选择器,不严格的父子关系*/
.BB0 p {width: 150px;height: 100px;background: aqua;}

在这里插入图片描述
我们可以看到class为BB0的标签内部的所有p标签都生效了,也就是说对儿子和孙子都生效,都变成了aqua颜色的背景,同时宽高也被调整

父子选择器

严格的父子关系,孙子不会生效

在这里插入图片描述

/*子选择器,严格的父子关系*/
/*TB只是装饰,父子选择器在下面*/
.TB {border: 5px solid blue;
}/*父子关系不严格,不生效*/
.TB > tr > th {background: black;
}/*父子关系严格,生效,所有的孩子都会生效*/
.TB > thead > tr > th {border: 2px solid black;
}

在这里插入图片描述
不严格的父子关系没生效(表头的背景为黑色没生效)

严格的父子关系生效了(黑色的边框线)

兄弟选择器

分为一般兄弟选择器和紧邻兄弟选择器

一般兄弟选择器

用~连接兄弟,从基准选择器开始,向下识别它的所有兄弟元素(不包括基准选择器)

紧邻兄弟选择器

用+连接兄弟选择器,从基准选择器开始,向下识别它的第一个兄弟元素(不包括基准选择器

在这里插入图片描述

/*兄弟选择器*/
/*基准选择器~基准选择器的兄弟选择器*//*一般兄弟选择器*/
/*从基准选择器开始,向下识别它的所有对应的兄弟元素*/
.TB > thead > tr > #th ~ th {background: green;
}/*紧邻兄弟选择器*/
/*从基准选择器开始,向下识别它的紧邻的一个兄弟元素*/
.BRO + li {font-style: italic;color: orangered;}

在这里插入图片描述

在这里插入图片描述

我们可以看到表头的id为th的th元素的后面的所有兄弟th元素都匹配到了,背景颜色变成了green(一般兄弟选择器

我们还可以看到class属性为BRO的li元素的下一个兄弟li元素被匹配,字体变成了斜体,颜色为橘红色(紧邻兄弟选择器

组合选择器

其实就是各种选择器的排列组合,不同的选择器用逗号隔开

/*组合选择器*/
/*不同的选择器,用逗号隔开,表示设置相同的属性*/.BB0 p, .TB > thead > tr > th {/*包含选择器,父子选择器*/width: 200px;height: 300px;background: blueviolet;
}

在这里插入图片描述
对应部分的背景颜色都变成了紫色

伪类选择器&&伪元素选择器

伪,假装的意思;
好像有这个类,但实际上没有
好像有这个元素,但实际没有

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于html文档之外的抽象,所以叫伪类。

伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于html文档之中,所以叫伪元素。

实际使用有很多伪选择器,比如anchor伪类,:before,:after,:focus等,详见

CSS 伪类 | 菜鸟教程 (runoob.com)

CSS 伪元素 | 菜鸟教程 (runoob.com)

demo

在这里插入图片描述

/*伪类选择器*//*anchor伪类*/
.weiLei:hover {color: gray;
}/*first-child 伪类*//*:focus伪类。*//*伪元素选择器*/div:first-letter {font-size: 36px;color: red;font-weight: bolder;
}

在这里插入图片描述
div元素的第一个汉字确实都更大
在这里插入图片描述

鼠标悬停时,腾讯官网字体颜色变成了灰色

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

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

相关文章

详解拷贝构造

拷贝构造的功能 写法&#xff1a; 拷贝构造函数的参数为什么是引用类型 系统自动生成的拷贝构造函数 拷贝构造的深拷贝与浅拷贝 概念 浅拷贝&#xff1a; 深拷贝 小结 拷贝构造的功能 拷贝构造函数可以把曾经实例化好的对象的数据拷贝给新创建的数据 &#xff0c;可见…

ASP.NET基于BS的计算机等级考试系统的设计与实现

摘 要 随着计算机技术的发展及计算机的日益普及&#xff0c;基于B/S结构的考试系统与无纸化办公一样已成为大势所趋。论文详细论述了一个基于B/S结构的计算机等级考试系统的设计过程。软件采用ASP.NET 2005作开发平台&#xff0c;C#作编程语言&#xff0c;SQL Server 2005作…

【DNS】

文章目录 DNS域名解析系统&#xff08;Domain Name System&#xff09;DNS系统需要解决的问题DNS域名解析系统&#xff08;Domain Name System&#xff09;问题1&#xff1a;DNS名字空间(The DNS Name Space&#xff09;DNS名字空间(The DNS Name Space)DNS名字空间(The DNS Na…

边缘计算【智能+安全检测】系列教程--使用OpenCV+GStreamer实现真正的硬解码,完全消除马赛克

通过现有博客的GST_URL = "rtspsrc location=rtsp://admin:abcd1234@192.168.1.64:554/h264/ch01/main/av_stream latency=150 ! rtph264depay ! avdec_h264 ! videorate ! videoconvert ! appsink sync=false" GStreamer的解码方式解码,大多情况应该存在上图马赛克…

解决jenkins运行sh报process apparently never started in XXX

个人记录 问题 process apparently never started in /var/jenkins_home/workspace/ks-springboot_mastertmp/durable-bbfe5f99(running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICStrue might make the problem cl…

架构师系列-搜索引擎ElasticSearch(八)- 集群管理故障恢复

故障转移 集群的master节点会监控集群中的节点状态&#xff0c;如果发现有节点宕机&#xff0c;会立即将宕机节点的分片数据迁移到其它节点&#xff0c;确保数据安全&#xff0c;这个叫做故障转移。 下图中node1是主节点&#xff0c;其他两个节点是从节点 节点故障 此时node1…

卷积神经网络(LeNet5实现对Fashion_MNIST分类

参考6.6. 卷积神经网络&#xff08;LeNet&#xff09; — 动手学深度学习 2.0.0 documentation (d2l.ai) ps&#xff1a;在这里预备使用pythorch 1.对 LeNet 的初步认识 总的来看&#xff0c;LeNet主要分为两个部分&#xff1a; 卷积编码器&#xff1a;由两个卷积层组成; …

OLTP 与 OLAP 系统说明对比和大数据经典架构 Lambda 和 Kappa 说明对比——解读大数据架构(五)

文章目录 前言OLTP 和 OLAPSMP 和 MPPlambda 架构Kappa 架构 前言 本文我们将研究不同类型的大数据架构设计&#xff0c;将讨论 OLTP 和 OLAP 的系统设计&#xff0c;以及有效处理数据的策略包括 SMP 和 MPP 等概念。然后我们将了解经典的 Lambda 架构和 Kappa 架构。 OLTP …

振兴国腾GM8775C MIPIDSI桥接到双 PORT LVDS

GM8775C描述&#xff1a; GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单 / 双通道 LVDS 功能&#xff0c;MIPI 支持 1/2/3/4 通道可选&#xff0c;每通道最高支持 1Gbps 速率&#xff0c;最大支持 4Gbps 速率。LVDS 时钟频率高达 154MHz &a…

Vue列表渲染

一、Vue列表渲染 1.用 v-for 把一个数组对应为一组元素 我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据数组&#xff0c;而 item 则是被迭代的数组元素的别名。 <ul id"exampl…

Facebook广告投放数据API对接流程

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、需求背景 App在Facebook、Google等巨头进行广告投放&#xff0c;想要拿到实时广告投放效果数据&#xff0c;如曝光、点击、花费、触…

Django第三方功能的使用

Django第三方功能的使用 Django REST framework前言1、Django--Restframework--coreapi版文档BUG:AssertionError: coreapi must be installed for schema support.How to run Django with Uvicorn webserver?2、序列化类 Serializer的使用模型序列化类 ModelSerializer的使用…

MySQL 社区版 安装总结

很早就安装过MySQL&#xff0c;没有遇到过什么问题&#xff0c;直接next就行了&#xff0c;这次在新电脑上安装却遇到了一些问题&#xff0c;记录一下。 安装的是MySQL社区版&#xff0c;下载地址是www.mysql.com&#xff0c;进入后选择DOWNLOAD页面&#xff0c;选择MySQL Com…

SqlServer专题

目录 1&#xff0c;连接数据库 2&#xff0c;连接池 1.何为连接池&#xff1f; 2.连接池运行原理。 3.如何查看连接池&#xff1f; 4.连接池注意事项。 3&#xff0c;一般SQL语句。 4&#xff0c;控制语句 1.判断语句 2.循环语句 5&#xff0c;视图 1.使用…

<计算机网络自顶向下> P2P应用

纯P2P架构 没有或者极少一直运行的Server&#xff0c;Peer节点间歇上网&#xff0c;每次IP地址都可能变化任意端系统都可以直接通信利用peer的服务能力&#xff0c;可扩展性好例子&#xff1a;文件分发; 流媒体; VoIP类别:两个节点相互上载下载文件&#xff0c;互通有无&#…

C# Solidworks二次开发:相机访问相关API详解

大家好&#xff0c;今天要介绍的API为相机相关的API&#xff0c;这篇文章比较适合女孩子&#xff0c;学会了相机就会拍照了&#xff0c;哈哈。 下面是要介绍的API: &#xff08;1&#xff09;第一个为GetFocalDistance&#xff0c;这个API的含义为获取相机的焦距&#xff0c;…

ASP.NET基于BS的图书销售管理系统的设计与实现

随着Internet的兴起&#xff0c;网络已经成为现代人生活中的一部分&#xff0c;越来越多的人喜欢在网上交易。本系统就是一个基于B/S模式的网络化的图书销售管理系统,采用的是ASP.NET技术&#xff0c;实现了用户注册信息管理、用户信息管理、图书销售点管理、图书信息管理、客户…

特征工程(IV)--特征选择

特征工程 有这么一句话在业界广泛流传&#xff1a;数据和特征决定了机器学习的上限&#xff0c;而模型和算法只是逼近这个上限而已。由此可见&#xff0c;特征工程在机器学习中占有相当重要的地位。在实际应用当中&#xff0c;可以说特征工程是机器学习成功的关键。 特征工程是…

【C语言】简易版扫雷+进阶版扫雷

目录 前言 一、分模块化 二、准备雷盘 2.1 游戏菜单 2.2 创建雷盘思路 2.3 构建雷盘 2.4 雷盘展示 2.4.1 初始化雷盘 2.4.2 打印雷盘 三、排雷 3.1 布置雷 3.2 排查雷 四、进阶版扫雷 总结 前言 C语言实现扫雷小游戏&#xff0c;帮我们更进一步的掌握数组、模块化…

Windows Server 2016虚拟机安装教程

一、VMware Workstation虚拟机软件的下载 官网下载入口&#xff1a;​​​​​​Download VMware Workstation Pro - VMware Customer Connect​​​​​ 下载好之后自己看着提示安装软件就好. 二、镜像文件的下载 下载网站入口&#xff1a;MSDN, 我告诉你 - 做一个安静…