【前端CSS】CSS的3种基本选择器和5种高级选择器使用方式

目录

前言

基本选择器

1.1 标签选择器

1.2 ID选择器

1.3 类选择器

高级选择器

2.1 并集选择器

2.2 交集选择器

2.3 后代选择器

2.4 子元素选择器

2.5 属性选择器


前言

1W:什么是CSS选择器?

  • CSS选择器由HTML元素的idclass属性或元素名本身以及一些特殊符号构成;

2W:为什么使用CSS选择器?

  • 用于指定要为哪个HTML元素定义样式;

3W:如何使用CSS选择器?

  1. 行内样式:在标签内添加style书写,将样式放在HTML标签中,实现繁琐,推荐学习使用
  2. 内部样式:将CSS写在</head><body>之间,使用HTML标签<style>将其包围,特点是该样式只能在此页使用,解决行内样式多次书写的弊端;
  3. 外部样式:通过HTML的<link>标签,将外部样式表链接到HTML文档中,也是网络上网站应用最多的方式,同时也是最使用的方式。将HTML文档和CSS文件完全分离,增强网页结构的扩展性和CSS样式的可维护性;

基本选择器

1.1 标签选择器

通过具体的标签名称来匹配文档内所有同名的标签,如下所示:

P{color:blue;
}

p 选择器能够匹配文档中所有的<p>标签 


1.2 ID选择器

用来匹配HTML文档中具有指定ID属性的标签,ID选择器的定义需要用到 # ,后面紧跟ID属性的值,如下所示:

注:id属性不能重复,如果某个元素使用id,则这个id是这个元素的唯一标识;

#nav{color:aqua;}

#nav 选择器能够匹配文档中具有 id="nav" 属性的标签; 


1.3 类选择器

根据标签的class 属性匹配具体的HTML标签,所有符合条件的标签都会根据选择器内的样式进行格式化;

类选择器的定义需要用到一个英文的句号 . ,后面紧跟 class 属性的值,如下所示:

.list{color:darksalmon;
}

.list 选择器能够匹配文档中所有具有 class="list"属性的标签

类选择器相较于ID选择器不同的是:类选择器可以重复使用,class属性不是唯一的,可应用于不同的标签,如下所示:

p.list{color:darksalmon;
}

p.list 选择器仅会将其中的样式应用到所有具有 class="list" 属性的<p>标签中,对于其他的具有 class="list"属性的标签则没有影响。

一个HTML标签中的class属性可以不止一个,如:

<p class="info selected"></p>
<p class="info"></P>

我们可以将所有class属性包含info的元素设置粗体,为所有class 属性包含selected的元素设置红色字体,为class属性中既包含info又包含selected的元素设置蓝色背景,如下所示:

.info{font-weight: bold;}.selected{color: red;}.info.selected{background: blue;}

 这种由多个 class 属性值 所组成的类选择器我们可以称之为“ 多类选择器 ”,由单个class属性值 定义的类选择器可以称为“ 单类选择器 ”;

注:多类选择器中,多个class属性之间是紧挨着的,如info.selected,不需要使用空格分开


高级选择器

2.1 并集选择器

并集选择器是由多个选择器通过逗号 , 连接而成,如下所示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>/* 并集选择器 */p,.yangshi{color: red;}
</style>
<body><p>爱你孤身走暗巷</p><p>爱你不跪的模样</p><div>爱你对峙过绝望</div><div class="yangshi">不肯哭一场</div>
</body>
</html>
并集选择器效果图

2.2 交集选择器

交集选择器是由两个选择器连接构成,选中二者范围的交集,如下所示:

注:两个选择器之间不能有空格,第⼀个必须是标签选择器 ,第⼆个必须是 类选择器或 id 选择器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>交集选择器</title>
</head>
<style>/* 交集选择器 */div.one{color: red;}div#two{color: darkorchid;}
</style>
<body><h1>孤勇者</h1><small>陈奕迅</small><div class="one">爱你孤身走暗巷</div><div id="two">爱你不跪的模样</div><div>爱你对峙过绝望</div><p class="one">不肯哭一场</p>
</body>
</html>
交集选择器效果图

2.3 后代选择器

当⼀个标签嵌套在⼀个标签内部的时候,就可以将这个标签看作是标签的后代。当我们需要选择⼀个标签的任何⼀个后代标签时,就可以使⽤后代选择器。

后代选择器的定义方式就是将 标签名 class 属性 或 id 属性等按照标签的嵌套关系由外到内罗列,中间使用 空格 分开。

如下所示:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>后代选择器</title></head><style>a{text-decoration: none;}/* 后代选择器 */ul a{color: gray;line-height: 30px;}</style><body><div><h2><a href="#">孤勇者</a></h2><ul><li><a href="#">爱你孤身走暗巷</a></li><li><a href="#">爱你不跪的模样</a></li><li><a href="#">爱你对峙过绝望</a></li><li><a href="#">不肯哭一场</a></li></ul></div></body>
</html>
后代选择器效果图

 ul a 选择器只会匹配⽆序列表<ul>标签的所有后代标签<a>,和<h2>标签中的<a>标签无关


2.4 子元素选择器

子元素选择器与后代选择器类似,不过子元素选择器只会匹配某个元素的直接后代(元素与其⼦元 素之间只有⼀层嵌套关系),子元素选择器由两个或多个选择器组成,选择器之间用大于号 > 分隔开。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>div{text-align: center;}/* ⼦元素选择器 */div>p>em{font-size: 22px;}div>p>.uname{color: red;font-weight: 600;}</style>
<body><div><h2>李小龙语录</h2><p>
清空你的思想,像水一样无形。你将水倒入水杯,水就是水杯的形状。
<em>你将水倒入茶壶,水就是茶壶的形状。</em>你看,水会流动,也会冲击。请像水一样吧,我的朋友!
<em class="uname">武术宗师李小龙</em></p></div>
</body>
</html>
子元素选择器效果图

2.5 属性选择器

属性选择器 是指选取带有属性的元素

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<style>/* 属性选择器 */input{background-color: pink;}input[type]{background-color: aqua;}input[name]{background-color: yellow;}input[name="userpwd"]{background-color: greenyellow;}
</style>
<body><input ><br><input type="text"><br><input type="text" name="username"><br><input type="text" name="userpwd">
</body>
</html>
属性选择器效果图

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

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

相关文章

SpringBoot中定时任务、corn表达式

SpringBoot中定时任务、corn表达式 corn表达式网站&#xff1a;https://cron.qqe2.com/ 方法上加上Scheduled(cron表达式) 启动类上加上EnableScheduling 示例 启动类上 启动类加上EnableScheduling开启定时任务。 SpringBootApplication EnableScheduling public class…

vue 在什么情况下在数据发生改变的时候不会触发视图更新

在 Vue 中&#xff0c;通常数据发生变化时&#xff0c;视图会自动更新。但是&#xff0c;有几种情况可能导致数据变化不会触发视图更新&#xff1a; 1.对象属性的添加或删除&#xff1a; Vue 无法检测到对象属性的添加或删除。因为 Vue 在初始化实例时对属性执行了 getter/se…

VUE3 使用axios网络请求

1.新建工程 参考&#xff0c;VUE3 环境搭建&#xff1a;https://blog.csdn.net/LQ_001/article/details/136293795&#xff0c;运行命令 vue create vue-demo 2.引入axios 不管何种引用&#xff0c;都要在工程中安装 axios 包。安装命令&#xff1a;npm install --save axio…

C语言——函数指针——函数指针变量(详解)

函数指针变量 函数指针变量的作用 函数指针变量是指向函数的指针&#xff0c;它可以用来存储函数的地址&#xff0c;并且可以通过该指针调用相应的函数。函数指针变量的作用主要有以下几个方面&#xff1a; 回调函数&#xff1a;函数指针变量可以作为参数传递给其他函数&…

拿捏算法的复杂度

目录 前言 一&#xff1a;算法的时间复杂度 1.定义 2.简单的算法可以数循环的次数&#xff0c;其余需要经过计算得出表达式 3.记法&#xff1a;大O的渐近表示法 表示规则&#xff1a;对得出的时间复杂度的函数表达式&#xff0c;只关注最高阶&#xff0c;其余项和最高阶…

【音视频开发好书推荐2】《FFmpeg 音视频开发基础与实战》

1、多媒体处理开源库FFmpeg概述 享有盛名的音视频多媒体处理开源库FFmpeg&#xff0c;做过音视频编解码开发的同学基本都用过&#xff0c;即便没做过这方面开发&#xff0c;也会听说过这个开源库。 FFmpeg是目前最全面的开源音视频编解码库&#xff0c;包括常用的音视频编码协议…

JavaScript原型和原型链

JavaScript每个对象拥有一个原型对象 需要注意的是&#xff0c;只有函数对象才有 prototype 属性 当试图访问一个对象的属性时&#xff0c;它不仅仅在该对象上搜寻&#xff0c;还会搜寻该对象的原型&#xff0c;以及该对象的原型的原型&#xff0c;依次层层向上搜索&#xff…

C++指针(五)完结篇

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

ai学习前瞻-python环境搭建

python环境搭建 Python环境搭建1. python的安装环境2. MiniConda安装3. pycharm安装4. Jupyter 工具安装5. conda搭建虚拟环境6. 安装python模块pip安装conda安装 7. 关联虚拟环境运行项目 Python环境搭建 1. python的安装环境 ​ python环境安装有4中方式。 从上图可以了解…

物联网电气融合实训室建设方案

1 教学实训总体设计 1.1 建设背景 &#xff08;一&#xff09;政策推动与战略部署 近年来&#xff0c;物联网技术在全球范围内得到了广泛的关注和应用。作为信息技术的重要组成部分&#xff0c;物联网在推动经济转型升级、提升社会管理水平、改善民生福祉等方面发挥着重要作…

python实现桶排序

排序算法&#xff1a; python实现基数排序 python实现归并排序 python实现交换排序 python实现选择排序 python实现插入排序 python实现桶排序 桶排序&#xff08;Bucket Sort&#xff09;是一种排序算法&#xff0c;它将待排序的元素分到有限数量的桶&#xff08;buckets&…

Ps:清理

清理 Purge命令位于“编辑”菜单下&#xff0c;它主要用于释放 Photoshop 使用的内存资源&#xff0c;有助于提高系统的性能。 通过使用“清理”命令&#xff0c;用户可以有效管理 Photoshop 的资源使用&#xff0c;特别是在处理大型文件或进行长时间编辑会话时。 定期清理可以…

python 基础知识点(蓝桥杯python科目个人复习计划61)

今日复习内容&#xff1a;想到什么复习什么 因为比赛用到的编辑器是IDLE&#xff0c;所以从现在开始&#xff0c;我就不用pycharm了。 例题1&#xff1a; 从1到2020的所有数字中&#xff0c;有多少个2&#xff1f; 这个题是一个填空题&#xff0c;我用的方法是先在编辑器上…

第14章 西瓜书——概率图模型

概率图模型 概率图模型&#xff08;Probabilistic Graphical Model&#xff09;是用图结构来表示多元随机变量之间条件依赖关系的模型。在图模型中&#xff0c;节点表示随机变量&#xff0c;边表示变量之间的依赖关系。概率图模型可以分为有向图模型&#xff08;如贝叶斯网络&a…

Oracle VM VirtualBox安装Ubuntu桌面版

背景&#xff1a;学习Docker操作 虚拟机软件&#xff1a;Oracle VM VirtualBox 7.0 系统镜像&#xff1a;ubuntu-20.04.6-desktop-amd64.iso 在Oracle VM VirtualBox新建一个虚拟电脑 选择好安装的目录和选择系统环境镜像 设置好自定义的用户名、密码、主机名 选择一下运行内…

交易平台开发:构建安全/高效/用户友好的在线交易生态圈

在数字化浪潮的推动下&#xff0c;农产品现货大宗商品撮合交易平台已成为连接全球买家与卖家的核心枢纽。随着电子商务的飞速发展&#xff0c;一个安全、高效、用户友好的交易平台对于促进交易、提升用户体验和增加用户黏性至关重要。本文将深入探讨交易平台开发的关键要素&…

Mac使用自动操作(Automator)发送文件到Android设备

需求场景 在Android开发调试的过程中&#xff0c;当需要把电脑上的文件传输到连接的Android设备时&#xff0c;通常的做法是通过adb push命令。那既然是通过命令操作&#xff0c;是否可以通过可视化的工具来操作呢&#xff1f;例如在Finder中&#xff0c;右击某一个文件或者目…

软件测试相关内容第三弹--软件测试基础

写在前&#xff1a;在前篇的两篇博客介绍中我们主要学习软件测试的相关概念&#xff0c;对软件测试进行了初步的了解&#xff0c;本篇博客将进一步进行学习。重点内容包括&#xff1a;软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…

数学建模【时间序列】

一、时间序列简介 时间序列也称动态序列&#xff0c;是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分&#xff0c;分别是描述过去、分析规律和预测未来&#xff0c;本篇将主要介绍时间序列分析中常用的三种模型&#xff1a;季节分解…

多线程扫盲篇

一&#xff1a;前言 多线程在java中具有举足轻重的地位&#xff0c;无论是平时开发中还是面试求职中&#xff0c;对多线程这一块的知识点考察都非常多的&#xff0c;本周我们将平时开发中、面试中常见的一些多线程知识进行梳理&#xff0c;让大家对这一块有更加深入的理解 二…